2016-09-26 63 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