在連接到 mysql 數據庫服務器時,有時會在客戶端報出 2003 的錯誤代碼,並提示: 無法連接到服務器,但服務器卻可以 ping 通,可能的原因如下:
1.網絡不通。
檢查能不能ping通。
2.防火牆設置。
防火牆是否放過mysql的進程,是否屏蔽了mysql的3306端口。
3.mysql的賬戶設置。
mysql賬戶是否不允許遠程連接。如果無法連接可以嘗試以下方法:
mysql -u root -p //登錄MySQL mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何遠程主機都可以訪問數據庫 mysql> FLUSH PRIVILEGES; //需要輸入次命令使修改生效 mysql> EXIT //退出
也可以通過修改表來實現遠程:
mysql -u root -p mysql> use mysql; mysql> update user set host = '%' where user = 'root'; mysql> select host, user from user;
4. mysql數據庫沒有啟動
這種情況也正是我遇到的,到windows服務選項里查看發現沒有mysql數據庫服務這個選項,記得剛開始安裝mysql的時候是有的。所以這種情況下我重新安裝了一下mysql數據庫,windows服務里又有這個選項了,重新啟動mysql數據庫,可以正常連接和使用mysql數據庫了。
5.MySQL 服務器資源緊張,導致無法連接
解決方法:
(1)、如果你是虛擬主機用戶(購買的空間),則聯系空間商檢查 MySQL 是否正常啟動,並確認 MySQL 的配置信息(是否為 localhost);
(2)、如果你是獨立主機用戶(擁有管理主機權限),則按下面步驟檢查:
1)檢查是否啟動了 MySQL 服務。
Windows 主機的話,右鍵點擊我的電腦,單擊管理,在服務和應用程序中找到 MySQL 服務,看是否是已啟動的狀態。
如果出現"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)", 說明你的MySQL還沒有啟動。
解決辦法:
第一步
刪除c:windowns下面的my.ini
第二步
打開c:mysqlbinwinmysqladmin.exe 輸入用戶名 和密碼
第三步 在dos下 輸入 mysqld-nt -remove 刪除服務
在接着輸入 mysqld-nt -install
第四步 輸入mysql 啟動成功
其實錯誤的原因也不外乎以上幾個方面,相信按照上面的思路找出原因,定能將問題解決掉。也可以參考這里的問題集: http://database.51cto.com/mysql/
