Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,比如使用Navicat连接数据库等。
一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限
登录mysql并授权:
|
1
2
|
mysql -uroot -p"youpassword" mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; |
重载授权表:
|
1
|
FLUSH PRIVILEGES; |
退出mysql数据库:
|
1
|
exit |
二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限
登录mysql并授权:
|
1
2
|
mysql -u root -p"youpassword" GRANT ALL PRIVILEGES ON *.* TO root@"8.8.8.8" IDENTIFIED BY "youpassword" WITH GRANT OPTION; |
重载授权表:
|
1
|
FLUSH PRIVILEGES; |
退出mysql数据库:
|
1
|
exit; |
三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限
登录mysql并授权:
|
1
2
3
4
|
mysql: mysql -u root -p"youpassword" GRANT select,insert,update,delete ON *.* TO root@"8.8.8.8" IDENTIFIED BY "youpassword"; |
重载授权表:
|
1
|
FLUSH PRIVILEGES; |
退出mysql数据库:
|
1
|
exit; |
四、删除用户授权,需要使用REVOKE命令,具体命令格式为:
|
1
|
REVOKE privileges ON 数据库[.表名] FROM user-name; |
具体实例,先登录授权:
|
1
2
|
mysql: mysql -u root -p"youpassword" GRANT select,insert,update,delete ON TEST-DB TO test-user@"8.8.8.8"IDENTIFIED BY "youpassword"; |
再进行删除授权操作:
|
1
|
REVOKE all on TEST-DB from test-user; |
注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。 最后从用户表内清除用户:
|
1
|
DELETE FROM user WHERE user="test-user"; |
重载授权表:
|
1
|
FLUSH PRIVILEGES; |
退出mysql数据库:
|
1
|
exit; |
本文介绍如何设置MySQL数据库,以允许root用户从任何位置或特定IP地址进行远程连接,并授予不同级别的权限。此外,还介绍了如何撤销用户的权限以及从用户表中删除用户。
8万+

被折叠的 条评论
为什么被折叠?



