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
;
|