登陆
在本机上使用命令行登陆,并切换到mysql库
mysql -uroot -p
use mysql;
更改权限
使用grant all privileges on来更改用户对应某些库的远程权限
语法模板
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;
库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码
with grant option 说明
对象的owner将权限赋予某个用户(如:testuser1)
grant select ,update on bd_corp to testuser1 [with grant option ]
1.如果带了 with grant option
那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)
grant select,update on bd_corp to testuser2
2.如果没带with grant option
那么用户testuser1不能给testuser2授权 简单的说就是将权限传递给第三方
示例:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'lxh' WITH GRANT OPTION;
# 所有的地址都可以使用root用户,密码为lxh远程访问所有的数据库
2、刷新权限使其生效
flush privileges;
GRANT ALL PRIVILEGES ON testdb.* TO 'lxh'@'172.16.52.225' IDENTIFIED BY 'lxh' WITH GRANT OPTION;
# IP为172.16.52.225的电脑可以使用lxh用户,密码为lxh远程访问数据库testdb的所有表
3、修改配置文件
进入/etc/mysql目录,编辑my.cnf文件,注释掉bind-address = 127.0.0.1,即在行首添加#
4、最后,重启系统即可。
注意:修改完成之后,要重启系统才会生效。我们可以通过以下命令查看msql服务是否对外开放端口。
netstat -an|grep 3306
输出如上则表示成功开启远程访问。第三列中没有127.0.0.1字样。