MySQL为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,比如使用Navicat连接数据库等。
一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限
登录mysql并授权:
mysql -uroot -p "youpassword"
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限
登录mysql并授权:
mysql -u root -p "youpassword"
GRANT ALL PRIVILEGES ON *.* TO root@ "8.8.8.8" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit ;
三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限
登录mysql并授权:
mysql:
mysql -u root -p "youpassword"
GRANT select ,insert,update,delete
ON *.* TO root@ "8.8.8.8" IDENTIFIED BY "youpassword" ;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit ;
四、删除用户授权,需要使用REVOKE命令,具体命令格式为:
REVOKE privileges ON 数据库[.表名] FROM user-name;
具体实例,先登录授权:
mysql: mysql -u root -p "youpassword"
GRANT select ,insert,update,delete ON TEST-DB TO test -user@ "8.8.8.8" 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 ;