当LAMP环境配置好后,咱们在本机:192.168.0.130使用Navicat链接服务器:192.168.0.168的时候会出现远程MySQL不容许访问的错误,这是由于Mysql为了安全性,在默认状况下用户只容许在本地登陆,咱们如今的状况是在本机使用phpmyadmin或则是Navicat进行登陆、数据库管理,那么怎么办呢?咱们须要进行以下操做:php
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数据库:
exitmysql
2、若是只容许root用户在一个特定的IP进行远程登陆,并具备全部库任何操做权限,具体操做以下:
在本机先使用root用户登陆mysql:
mysql -u root -p"youpassword"
进行受权操做:
GRANT ALL PRIVILEGES ON *.* TO root@"指定的ip" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exitweb
3、假设只容许root用户在一个特定的IP进行远程登陆,并具备全部库特定操做权限,具体操做以下:
在本机先使用root用户登陆mysql:
mysql -u root -p"youpassword"
进行受权操做:
GRANT select,insert,update,delete ON *.* TO root@"特定的ip" IDENTIFIED BY "youpassword";
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exitsql
4、若是须要删除用户受权,须要使用REVOKE命令,具体命令格式为:
REVOKE privileges ON 数据库[.表名] FROM user-name;
具体实例,先在本机登陆mysql:
mysql -u root -p"youpassword"
进行受权操做:
GRANT select,insert,update,delete ON TEST-DB TO test_user@"指定ip" 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安全
5、MYSQL权限详细分类:
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增长/删除列)和索引。
CREATE: 创建新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 创建或删除索引。
INSERT: 增长表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 容许作任何事(和root同样)。
USAGE: 只容许登陆--其它什么也不容许作。服务器