Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,以下可参考。
【1、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限】
登录:
在本机先使用root用户登录mysql: mysql -u root -p"youpassword"
进行授权操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
在mysql控制台执行命令中的 ‘root'@'%' 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;'MyPassword'是给授权用户指定的登录数据库的密码
【2、允许root用户在一个特定的IP 或 特定的网段进行远程登录,并具有特定库特定操作权限】
登录:
在本机先使用root用户登录mysql: mysql -u root -p"youpassword"
进行授权操作:
mysql>GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";
若只想在特定网段远程登录(只有172.16.16.% 的局域网可以远程连接)
mysql>GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.%" IDENTIFIED BY "youpassword";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
【3、删除用户授权】
需要使用REVOKE命令。具体命令格式为:REVOKE privileges ON 数据库[.表名] FROM user-name。具体实例:
登录:
mysql: mysql -u root -p"youpassword"
进行授权操作:
mysql>GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";
再进行删除授权操作:
REVOKE all on TEST-DB from test-user;
****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。 最后从用户表内清除用户: DELETE FROM user WHERE user="test-user";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit