관리자 권한 명령 프롬프트 실행
MySQL 5.7 버전 이상
> mysql -u root -p
mysql database 선택하고 host, user 정보 확인
mysql> user mysql;
mysql> select host,user,authentication_string from user;
host 종류는 'localhost'와 '%'가 있다. 기본적으로 MySQL을 설치하면 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있다.
따라서, root계정의 외부접속을 허용하려면 다음과 같은 쿼리를 날리면 된다.
mysql> inster into mysql.user (host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject) values ('%','사용자명', password('비밀번호'),'','','');
mysql> grant all privileges on *.* to 'root'@'%';
mysql> flush privileges;
외부 접속 허용과 동일한 루틴으로 사용자 추가도 진행 할 수 있다.
mysql> inster into mysql.user (host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject) values ('% or localhost','사용자명', password('비밀번호'),'','','');
mysql> grant all privileges on *.* to 'root'@'% or localhost';
mysql> flush privileges;
mysql> drop user '사용자 ID';
또는mysql> delete from user where user = '사용자 ID';
mysql> grant all privileges on dbname.table to userid@host identified by 'password';
mysql> grant select, insert, update on dbname.table to userid@host identified by 'password';
mysql> grant select, insert, update on dbname.table to userid@'192.169.%' identified by 'password';
- host가 192.168.X.X로 시작되는 모든 IP의 원격 접속을 허용
- dbname.table 대신 dbname.* 은 해당 database의 모든 table의 접근을 허용한다. *.*은 모든 접근을 가능하게 한다.
mysql> flush privileges;
mysql> revoke all on dbname.table from username@host;
mysql> show grants for userid@host;
mysql> show grants for 'njkim'@'%';