本文目錄一覽:
MySQL無法連接到本地伺服器是什麼原因
具體解決法如下:1.排除網路或防火牆問題先看是否能ping通遠程伺服器,ping192.168.1.211,如果不可以就是網路問題。然後,檢查埠是否被防火牆擋住了,telnet192.168.1.2113306,如果連接失敗,配置防火牆。2.配置防火牆,開啟3306埠vi/etc/sysconfig/iptables-AINPUT-mstate–stateNEW-mtcp-ptcp–dport3306-jACCEPT(允許3306埠通過防火牆)/etc/init.d/iptablesrestart(重啟防火牆使配置生效)2.檢查MySQL配置3.如果開啟了防火牆,telnet還是失敗,通過netstat查看3306的埠狀態:netstat-apn|grep3360tcp600127.0.0.1:3306:::*LISTEN13524/mysqld注意紅色的地方,這說明3306被綁定到了本地。檢查一下my.cnf的配置,這裡可以配置綁定ip地址。
mysql連接不上伺服器怎麼辦
排除網路或防火牆問題
先看是否能ping通遠程伺服器,ping 192.168.1.211,如果不可以就是網路問題。然後,檢查埠是否被防火牆擋住了,telnet 192.168.1.211 3306,如果連接失敗,配置防火牆。
配置防火牆,開啟3306埠
vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306埠通過防火牆)/etc/init.d/iptables restart(重啟防火牆使配置生效)
2.檢查MySQL配置
如果開啟了防火牆,telnet還是失敗,通過netstat查看3306的埠狀態:
netstat -apn|grep 3306tcp6 0 0 127.0.0.1:3306 :::* LISTEN 13524/mysqld
注意地方,這說明3306被綁定到了本地。檢查一下my.cnf的配置,這裡可以配置綁定ip地址。
bind-address=addr
不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連接。
ps:我開啟3306埠,並且檢查MySQL配置之後,telent仍然失敗,但是在本機telnet是ok的,再三確認了配置沒有問題。後來跟我們的ucloud賬號管理員提了一下,才知道ucloud管理後台也需要開啟3306埠,用雲伺服器的留意這個。
3.檢查用戶訪問許可權
MySQL建用戶的時候會指定一個host,默認是127.0.0.1/localhost,那麼這個用戶就只能本機訪問,其它機器用這個用戶帳號訪問會提示沒有許可權,host改為%,表示允許所有機器訪問。
最後,別忘了重啟mysql使配置生效。
以上幾個原因,你看一下是否適用你的情況
SQL 資料庫連接伺服器失敗是什麼原因?
一、mysqld 進程沒有正常運行遇到這種情況首先到伺服器上看看 mysqld 進程是否活著,採用的命令:
二、客戶端不能和進程 mysqld 通信如果 MySQL 伺服器上的 mysqld 進程運行正常,我們再看看客戶端能不能和 mysqld 進行通信,使用下面的命令進行網路連通的測試:telnet localhost 3306
如果本地能通,再到客戶端的機器上把 localhost 換成 MySQL 伺服器的 ip 地址進行測試。如果不能通,通常有兩種原因,一種原因是 OS 或網路的問題,或者是防火牆;另一種原因是 mysqld 自身根本沒有偵聽客戶端的連接請求, mysqld 啟動後對於客戶端的偵聽是分三種情況。
第一種情況
是使用參數 –skip-networking 跳過偵聽客戶端的網路連接,用下面的命令我們可以看到 MySQL 根本沒有偵聽 3306 埠。
第二種情況
使用參數 –bind-address 後面增加對客戶端訪問 IP 地址的限制,例如只偵聽本地的連接
三、賬戶密碼的問題最後一種情況是賬戶密碼的問題,應付這種情況我們有個有力的工具就是查看 MySQL 的 error log, error log 記載信息的詳細程度上由參數 –log-error-verbosity 進行控制的
原創文章,作者:NWDK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140344.html