1、查看user表
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user,password from user;
+-----------------------+---------+-------------------------------------------+
| host | user | password |
+-----------------------+---------+-------------------------------------------+
| localhost | root | *D2DC387634BA98FE0528FC555B66B391FD009465 |
| localhost.localdomain | root | *D2DC387634BA98FE0528FC555B66B391FD009465 |
| 127.0.0.1 | root | *D2DC387634BA98FE0528FC555B66B391FD009465 |
| localhost | | |
| localhost.localdomain | | |
+-----------------------+---------+-------------------------------------------+
5 rows in set (0.00 sec)
2、設置遠程連接
第一種(改表法):
修改host字段的值,將localhost修改成需要遠程連接數據庫的ip地址或者直接修改成%。
修改成%表示,所有主機都可以通過root用戶訪問數據庫。
mysql> update user set host='%' where user='root' and host='localhost';
運行上面語句可能會有個報錯:
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
不用管,直接繼續執行:
mysql> flush privileges;
或者直接創建一個新用戶允許外聯:
insert into mysql.user(Host,User,Password) values("%","用戶名",password("密碼"));
grant all privileges on `庫名或*`.* to '用戶名'@'%' identified by '密碼';
flush privileges;
第二種(授權法):
如使用root從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
mysql> flush privileges;
如果你想允許用戶myuser從ip為192.168.0.77的主機連接到mysql服務器,並使用12345作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.0.77' IDENTIFIED BY '12345' WITH GRANT OPTION;
mysql> flush privileges;
注:
數據庫添加用戶語句:
grant all privileges on testdb.* to 'test_user'@'localhost' identified by "密碼" with grant option;
WITH GRANT OPTION 這個選項表示該用戶可以將自己擁有的權限授權給別人。
在創建操作用戶的時候不指定WITH GRANT OPTION選項將導致該用戶不能使用GRANT命令創建用戶或者給其它用戶授權。
如果不想這個用戶有這個grant的權限,可以不加這句