寶塔安裝的MySQL無(wú)法連接的情況及解決方案
一、錯(cuò)誤 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
錯(cuò)誤原因
此錯(cuò)誤表示您的 IP 地址沒(méi)有被授權(quán)訪問(wèn)寶塔服務(wù)器上的 MySQL。主要原因包括:
- 寶塔面板默認(rèn)只允許本地連接 MySQL
- MySQL 用戶權(quán)限配置限制了連接來(lái)源
- 寶塔安全設(shè)置或防火墻阻止了 MySQL 端口訪問(wèn)
解決方案
方案1:手動(dòng)配置 MySQL 用戶遠(yuǎn)程訪問(wèn)權(quán)限
- 在寶塔面板中進(jìn)入 終端 工具,或通過(guò) SSH 連接到服務(wù)器
- 使用 root 用戶登錄 MySQL:
mysql -uroot -p # 輸入寶塔面板顯示的 MySQL root 密碼
- 執(zhí)行以下 SQL 命令:
-- 創(chuàng)建允許從任意主機(jī)連接的root用戶 CREATE USER 'root'@'%' IDENTIFIED BY '密碼'; -- 授予權(quán)限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; -- 刷新權(quán)限 FLUSH PRIVILEGES;
也可以通過(guò)寶塔面板可視化配置添加允許任何人訪問(wèn)的 root 用戶,找到高級(jí)設(shè)置

找到 MySQL 用戶管理

創(chuàng)建用戶,指定訪問(wèn)權(quán)限,如果希望任何人連接就選 --> 所有人

方案2:修改寶塔 MySQL 配置文件
- 在寶塔面板中打開 文件 管理
- 導(dǎo)航到 MySQL 配置文件(通常在
/etc/my.cnf或/www/server/mysql/etc/my.cnf) - 找到并注釋掉或修改以下行:
注釋掉這行:
bind-address = 127.0.0.1
或者改為:
bind-address = 0.0.0.0
- 在寶塔面板中重啟 MySQL 服務(wù)
方案3:檢查并調(diào)整寶塔防火墻設(shè)置
- 在寶塔面板中進(jìn)入 安全 選項(xiàng)
- 檢查防火墻是否放行了 MySQL 端口(默認(rèn) 3306)
- 如果未放行,點(diǎn)擊 放行端口 并添加 3306
二、錯(cuò)誤 1045:Access denied for user ‘root’@‘localhost’ (using password: YES)
錯(cuò)誤原因
此錯(cuò)誤表示用戶名和密碼驗(yàn)證失敗。在寶塔環(huán)境中常見原因包括:
- 使用了錯(cuò)誤的 MySQL 密碼(注意寶塔可能會(huì)定期自動(dòng)更改 MySQL root 密碼)
- 寶塔修改了 MySQL 的認(rèn)證方式但客戶端不兼容
- 數(shù)據(jù)庫(kù)用戶權(quán)限配置問(wèn)題
解決方案
方案1:在寶塔面板中查看/重置正確的 MySQL 密碼
- 登錄寶塔面板
- 進(jìn)入 數(shù)據(jù)庫(kù) 選項(xiàng)
- 查看 root 密碼或點(diǎn)擊 修改密碼 設(shè)置新密碼
- 使用新密碼重新連接
方案2:修改 MySQL 認(rèn)證方式
寶塔安裝的 MySQL 8.0+ 使用新的認(rèn)證方式,可能與某些客戶端不兼容:
- 登錄寶塔面板的終端或SSH連接到服務(wù)器
- 登錄 MySQL:
mysql -uroot -p # 輸入寶塔面板顯示的 MySQL root 密碼
- 修改認(rèn)證方式:
-- 修改認(rèn)證插件為兼容模式 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼'; FLUSH PRIVILEGES;
方案3:通過(guò)寶塔面板重置 MySQL
如果無(wú)法登錄 MySQL,可以通過(guò)寶塔面板重置:
- 在寶塔面板中,進(jìn)入 數(shù)據(jù)庫(kù) 選項(xiàng)
- 點(diǎn)擊 MySQL管理器 -> 修復(fù) 按鈕
- 如果仍有問(wèn)題,可以選擇 重置MySQL root密碼
方案4:手動(dòng)重置 MySQL 密碼(適用于無(wú)法通過(guò)寶塔解決的情況)
- SSH連接到服務(wù)器并執(zhí)行:
# 停止MySQL服務(wù)
/etc/init.d/mysqld stop
# 安全模式啟動(dòng)MySQL
mysqld_safe --skip-grant-tables &
# 無(wú)密碼登錄
mysql -u root
# 執(zhí)行以下SQL命令
USE mysql;
# MySQL 5.7
UPDATE user SET authentication_string=PASSWORD('密碼') WHERE User='root';
# MySQL 8.0+
ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼';
FLUSH PRIVILEGES;
exit;
# 重啟MySQL服務(wù)
/etc/init.d/mysqld restart
三、同時(shí)解決寶塔 MySQL 遠(yuǎn)程連接問(wèn)題的綜合方案
步驟1:確認(rèn) MySQL 服務(wù)狀態(tài)與密碼
- 登錄寶塔面板
- 進(jìn)入 數(shù)據(jù)庫(kù) 選項(xiàng),確認(rèn) MySQL 狀態(tài)為"正常",并記錄 root 密碼
步驟2:放行 MySQL 端口
- 在寶塔面板 安全 選項(xiàng)中檢查防火墻
- 確保 MySQL 端口 3306 已放行
- 如果使用了云服務(wù)器,還需在云服務(wù)提供商的控制面板中放行相應(yīng)端口
步驟3:創(chuàng)建數(shù)據(jù)庫(kù)專用用戶(推薦)
應(yīng)用程序最好使用專門的數(shù)據(jù)庫(kù)用戶而非 root:
- 在寶塔面板 數(shù)據(jù)庫(kù) 中添加新的 MySQL 數(shù)據(jù)庫(kù)
- 創(chuàng)建與之關(guān)聯(lián)的數(shù)據(jù)庫(kù)用戶
- 勾選"所有人"選項(xiàng)允許遠(yuǎn)程訪問(wèn)
步驟4:解決認(rèn)證問(wèn)題
如果仍然遇到認(rèn)證問(wèn)題,登錄 MySQL 執(zhí)行:
-- 對(duì)于root用戶 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼'; FLUSH PRIVILEGES;
四、寶塔 MySQL 連接的安全最佳實(shí)踐
- 避免使用 root 用戶遠(yuǎn)程連接:為應(yīng)用創(chuàng)建權(quán)限受限的專用數(shù)據(jù)庫(kù)用戶
- 限制訪問(wèn) IP:遠(yuǎn)程訪問(wèn)設(shè)置中指定特定 IP 而非使用 % 通配符
- 使用強(qiáng)密碼:設(shè)置包含大小寫字母、數(shù)字和特殊字符的強(qiáng)密碼
- 定期更換密碼:通過(guò)寶塔面板定期更新數(shù)據(jù)庫(kù)密碼
- 啟用 SSL 連接:配置 MySQL 使用 SSL/TLS 加密連接
- 監(jiān)控異常登錄:定期檢查 MySQL 日志中的連接記錄
- 最小權(quán)限原則:只授予用戶必要的數(shù)據(jù)庫(kù)和表權(quán)限
五、常見問(wèn)題排查流程
如果以上方法仍無(wú)法解決連接問(wèn)題,請(qǐng)按照以下步驟進(jìn)行排查:
檢查 MySQL 狀態(tài):
/etc/init.d/mysqld status
檢查 MySQL 配置:
cat /www/server/mysql/etc/my.cnf
檢查 MySQL 進(jìn)程與端口:
ps aux | grep mysql netstat -tunlp | grep 3306
檢查 MySQL 日志:
tail -100 /www/server/mysql/log/error.log
檢查寶塔日志:
cat /www/server/panel/logs/error.log
以上就是寶塔安裝的MySQL無(wú)法連接的情況及解決方案的詳細(xì)內(nèi)容,更多關(guān)于寶塔安裝MySQL無(wú)法連接的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL創(chuàng)建數(shù)據(jù)表并建立主外鍵關(guān)系詳解
這篇文章主要介紹了MySQL創(chuàng)建數(shù)據(jù)表并建立主外鍵關(guān)系詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06
詳解MySQL恢復(fù)psc文件記錄數(shù)為0的解決方案
這篇文章主要介紹了詳解MySQL恢復(fù)psc文件記錄數(shù)為0的解決方案,遇到這個(gè)問(wèn)題的朋友,可以看一下。2016-11-11
MySQL中的log_bin_trust_function_creators系統(tǒng)變量
本文主要介紹了MySQL中的log_bin_trust_function_creators系統(tǒng)變量,log_bin_trust_function_creators是一個(gè)全局系統(tǒng)變量,下面就來(lái)介紹一下具體使用,感興趣的可以了解一下2024-09-09
MySQL 性能優(yōu)化的最佳20多條經(jīng)驗(yàn)分享
今天,數(shù)據(jù)庫(kù)的操作越來(lái)越成為整個(gè)應(yīng)用的性能瓶頸了,這點(diǎn)對(duì)于Web應(yīng)用尤其明顯。關(guān)于數(shù)據(jù)庫(kù)的性能,這并不只是DBA才需要擔(dān)心的事,而這更是我們程序員需要去關(guān)注的事情。2010-07-07
MySQL數(shù)據(jù)庫(kù)基礎(chǔ)概念和簡(jiǎn)單使用
本文介紹了數(shù)據(jù)庫(kù)主流數(shù)據(jù)庫(kù)類型及MySQL的基本使用,包括:數(shù)據(jù)庫(kù)解決文件存儲(chǔ)的四大缺陷;MySQL的安裝連接、服務(wù)器管理及數(shù)據(jù)庫(kù)表關(guān)系;數(shù)據(jù)庫(kù)邏輯存儲(chǔ)結(jié)構(gòu);MySQL架構(gòu)的跨平臺(tái)特性;SQL語(yǔ)言分類(DDL、DML、DQL、DCL);存儲(chǔ)引擎的作用及對(duì)比(InnoDB、MyISAM等)2025-08-08
mysql執(zhí)行計(jì)劃id為空(UNION關(guān)鍵字)詳解
這篇文章主要給大家介紹了關(guān)于mysql執(zhí)行計(jì)劃id為空(UNION關(guān)鍵字)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09

