1. 程式人生 > >mysql的bind address設定為127 0 0 1 通過localhost連線訪問不了

mysql的bind address設定為127 0 0 1 通過localhost連線訪問不了

               

    今天在恢復CMS的時候,發現CMS指定使用者名稱及密碼,都不能夠連上資料庫,此時主機的地址寫的是localhost,我以為是當主機指定localhost時不能夠訪問資料庫,於我就就在命令列通過命令:

    mysql -uxxx -pxxx -hlocalhost

    通過mysql命令是能夠正常連線,那首先肯定使用者名稱及密碼是正確的,我第一個就排除了localhost有問題。

    剛開始一直以為是CMS的快取問題,懷疑有可能是伺服器啟動的時候,CMS就將配置檔案載入到了記憶體中去了,於是改一下配置檔案就重啟一下APACHE,幾次嘗試下來也沒有結果,反正就是資料庫連不上。

    後來以為是MYSQL的地方設定問題,把當前的my.cnf與原來的my.cnf檔案進行了比較,發現只有bind-address這個的差別,現在配置的是127.0.0.1,原來為了遠端訪問配置的是伺服器本身的IP地址,於是我將此處修改為當前伺服器的地址,填到CMS裡面也是連線不上,呵,這裡忘了將使用者的訪問許可權設定為允許遠端訪問,登陸mysql,將user表中指定使用者的host指定為"%",再通過FLUSH PRIVILEGES重新整理一個許可權,此時再填上這個開了遠端訪問的使用者名稱,這個時候就能夠連線上了。

    不過,這個時候如果允許遠端訪問,那麼資料庫就存在著風險了,別人就可以嘗試破解你mysql的使用者名稱和密碼;又再嘗試,將伺服器IP換成127.0.0.1,居然可以連線,再換成localhost又不可以訪問了,難道是沒有在host將localhost繫結到127.0.0.1?此時我檢視我的hosts檔案,發現也是綁定了的:127.0.0.1 localhost,這就奇了怪了,難道與my.cnf中的bind-address設定為127.0.0.1有關?如果將bind-address換成localhost,就可以訪問嗎?這應該是唯一的解釋了,不過現在我沒有了環境,等有機會嘗試的時候可以將bind-address設定為localhost試試。