配置MySQL远程访问权限

来源:互联网 发布:管家婆软件使用说明 编辑:程序博客网 时间:2024/05/16 09:09

1. 首先要在/etc/mysql/my.cnf中将bind_address = xx.xx.xx.xx设置成需要的IP地址。设置成127.0.0.1则只允许本地连接。没有这一项设置默认接受任何IP地址的链接。

2. 在mysql内添加一个'username'@'%'的用户并赋予此用户响应的权限

> mysql -u username -p //打开控制台mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'passpass';mysql> GRANT ALL PRIVILIGES ON *.* TO 'busername'@'%' WITH GRANT OPTION;

4. 重新启动mysqld。


可能出现的问题

1. 如果username是已经存在的用户,而你先执行了GRANT。。。的命令。mysql会自动给你添加一个'username'@'%'的用户,但是这个时候'username'@'%'是没有密码的。需要设置一下密码。

SET PASSWORD FOR 'username'@'%' = PASSWORD('yourpassword');

2. 匿名用户导致'username'无法在本地登陆。原因是mysql有可能有匿名用户''@'localhost'存在。这时使用'username'@'localhost'登陆mysql会match到''@'localhost'上导致无法操作数据库。这种情况下需要先删除''@'localhost',才能正常使用'username'@'localhost'。


另外,安全起见,还是不要grant all previliges on *.* ....这个意思是给'username'@'%'在所有数据库上做任何他想做的事的权利。可以使用下面的命令分配特定的权限

GRANT SELECT ON database.* TO 'username'@'%';


Grant的语法看这里:https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-database-privileges

0 0
原创粉丝点击