mysql 재시작, 사용자 추가 명령어
mysql 재시작 명령어
MYSQL 종료 명령어
#mysqladmin -u root -p shutdown 한다음에
#mysql-dir/bin/safe_mysqld
MYSQL 재시작 명령어
#mysql-dir/bin/safe_mysqld &
굳이 mysql 종료 후 재시작을 기본으로 하는 이유는 db 재시작시에 쿼리전송이 일어날 수 있어
기록 못하는 일을 방지하고자 종료 후 다시시작하는 것을 원칙으로 합니다.
MySQL 초기화 스크립트(http://gooranet.tistory.com/79)
1. Test Table 데이터 및 Account 삭제, root 패스워드 변경
USE mysql;
DELETE FROM db WHERE db LIKE 'test%';
DELETE FROM user WHERE host = '%';
DELETE FROM user WHERE User = '';
UPDATE user SET Password = PASSWORD('패스워드') WHERE User = 'root';
FLUSH PRIVILEGES;
2. Database, User(select 전용, insert/update/delete 전용) 추가
GRANT select ON 디비명.* TO 셀렉트용아이디@"호트스명" IDENTIFIED BY "패스워드";
GRANT insert,update,delete ON 디비명.* TO 업데이트/인서트용아이디@"호스트명" IDENTIFIED BY "패스워드";
FLUSH PRIVILEGES;
3. Schema 수정 using ALTER
Ex) ALTER TABLE table1 ADD column1 CHAR(5) AFTER column2;
ALTER TABLE 테이블명 MODIFY 수정할 내용;
Ex1) ALTER TABLE table1 MODIFY (column1 INT(8) NULL);
Ex2) ALTER TABLE table1 RENAME AS table2;
Ex3) ALTER TABLE table2 CHANGE old old TINYINT NOT NULL, CHANGE old new CHAR(20);
ALTER TABLE 테이블명 DROP PRIMARYKEY;
ALTER TABLE 테이블명 DROP COLUMN 지울 컬럼명;
mysql autoincrement초기화 방법
alter table 테이블명 auto_increment = 1
MySQL 접속
$ mysql -u root -p
root 암호 초기화
mysql> UPDATE user SET password=password('new_password') WHERE user='root';
mysql> FLUSH privileges;
데이터베이스 선택 및 보기
mysql> USE mysql;
mysql> SELECT Host, User, Password FROM user;
사용자 추가
- 서버 주소의 경우 localhost, %, 127.0.0.1 도 같이 처리해 줍니다.
- 외부 접속은 'localhost' 대신에 '%' 를 사용합니다.
mysql> INSERT INTO user (Host, User, Password) VALUES ('localhost', '유저명', password('유저패스워드'));
mysql> INSERT INTO user (Host, User, Password) VALUES ('127.0.0.1', '유저명', password('유저패스워드'));
mysql> INSERT INTO user (Host, User, Password) VALUES ('%', '유저명', password('유저패스워드'));
mysql> FLUSH privileges;
사용자 삭제 예
mysql> DELETE FROM user WHERE user='root' and host='%';
데이터베이스 추가 및 권한 주기
- 모든 권한시 데이터베이스명.* 대신 *.* 로 처리합니다.
mysql> CREATE DATABASE 데이터베이스명;
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 유저명@localhost IDENTIFIED BY '유저패스워드';
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 유저명@127.0.0.1 IDENTIFIED BY '유저패스워드';
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 유저명@'%' IDENTIFIED BY '유저패스워드';
이렇게 해서 외부접속이 안되면 insert into 구문 잘못 입력시 % 가 잘못 입력되거나 패스워드를 유저 패스워드가 아닌 root 패스워드를 입력했을 가능성이 있습니다. 이 경우 % 를 다시 바꿔주면 됩니다.
mysql> UPDATE INTO user SET Host='%' WHERE user='유저명';
mysql> FLUSH privileges;