启用远程MySQL访问不再适用于localhost

时间:2016-09-26 13:08:40

标签: php mysql

我设法允许远程访问我们的Mysql DB。这是我的conf文件 /etc/my.conf

cat /etc/my.cnf

[mysqld]
local-infile=0
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
bind-address = IP_OF_SERVER
#skip-networking

问题是,我能够远程连接到数据库,但是如果我启用这样的conf文件,那与使用mysql不同的内部应用程序无法连接到localhost。

我不确定如何妥善解决这个问题。是否还需要执行其他步骤?

我已查看此帖https://stackoverflow.com/a/13811362/5000868,但我不清楚。

这就是我的user表格的样子(我没有故意包含密码字段)

-----------------------+----------------+-------------------------------------------+-------------
| Host                  | User           | Password                                  | Select_priv 
+-----------------------+----------------+-------------------------------------------+-------------
| localhost             | root           | *                        | Y           
| localhost.localdomain | root           | *                        | Y           
| 127.0.0.1             | root           | *                        | Y           
| localhost             |                | *                        | N           
| localhost.localdomain |                | *                        | N           
| localhost             | 9r9v17559f9tew | *                        | Y                   
| %                     | 9r9v17559f9tew | * 

总而言之,我希望能够远程访问带有9r9v17559f9tew用户名的MySQL。 localy。

谢谢! EDIT

我添加了一个主机名为9r9v17559f9tew的用户127.0.0.1。 此外,当我尝试在服务器上访问数据库localy时,我收到以下错误:

mysql -u 9r9v17559f9tew -p

输入密码: ERROR 2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)

如果我尝试连接这样的localy或遥控器,我可以连接:

# mysql -u 9r9v17559f9tew -p -h IP_OF_SERVER
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

1 个答案:

答案 0 :(得分:1)

只需删除bind-address声明。

然后重启服务。

据我所知,默认情况下MySQL将绑定到0.0.0.0。这允许本地和远程访问。通过指定服务器的IP,它只接受来自分配了IP的eth接口的连接。