2016-09-26 65 views
1

我设法允许远程访问我们的Mysql数据库。这是我的conf文件/etc/my.conf启用远程MySQL访问不再适用于localhost

猫的/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不同的内部应用程序无法连接到本地主机。

我不知道如何正确解决这个问题。是否还有其他步骤需要完成?

我已经检查过这个帖子,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。 此外,当我试图访问DB localy在服务器上这样我得到以下错误:

的mysql -u 9r9v17559f9tew -p

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

如果我尝试localy或远程连接这个样子,我能够连接:

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

http://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq特别是在答案的最后。我相信你需要确保你的mysqld为tcp/ip和套接字连接打开! –

+0

是的,我打开了端口。我已经通过iptables打开它, netstat -tln | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN – fugitive

回答

1

刚删除绑定地址声明。

然后重新启动服务。

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

+0

我已经尝试过,但内部应用程序(SolusVM)仍然无法连接到数据库。 我试图将它绑定到0.0.0.0,但它没有帮助。 – fugitive

+0

结果怎么样? netstat -tln | grep 3306 – Thomas