寶塔安裝的MySQL無法連接的情況及解決方案
一、錯(cuò)誤 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
錯(cuò)誤原因
此錯(cuò)誤表示您的 IP 地址沒有被授權(quán)訪問寶塔服務(wù)器上的 MySQL。主要原因包括:
- 寶塔面板默認(rèn)只允許本地連接 MySQL
- MySQL 用戶權(quán)限配置限制了連接來源
- 寶塔安全設(shè)置或防火墻阻止了 MySQL 端口訪問
解決方案
方案1:手動(dòng)配置 MySQL 用戶遠(yuǎn)程訪問權(quán)限
- 在寶塔面板中進(jìn)入 終端 工具,或通過 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;
也可以通過寶塔面板可視化配置添加允許任何人訪問的 root 用戶,找到高級(jí)設(shè)置

找到 MySQL 用戶管理

創(chuàng)建用戶,指定訪問權(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ù)庫用戶權(quán)限配置問題
解決方案
方案1:在寶塔面板中查看/重置正確的 MySQL 密碼
- 登錄寶塔面板
- 進(jìn)入 數(shù)據(jù)庫 選項(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:通過寶塔面板重置 MySQL
如果無法登錄 MySQL,可以通過寶塔面板重置:
- 在寶塔面板中,進(jìn)入 數(shù)據(jù)庫 選項(xiàng)
- 點(diǎn)擊 MySQL管理器 -> 修復(fù) 按鈕
- 如果仍有問題,可以選擇 重置MySQL root密碼
方案4:手動(dòng)重置 MySQL 密碼(適用于無法通過寶塔解決的情況)
- SSH連接到服務(wù)器并執(zhí)行:
# 停止MySQL服務(wù)
/etc/init.d/mysqld stop
# 安全模式啟動(dòng)MySQL
mysqld_safe --skip-grant-tables &
# 無密碼登錄
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)程連接問題的綜合方案
步驟1:確認(rèn) MySQL 服務(wù)狀態(tài)與密碼
- 登錄寶塔面板
- 進(jìn)入 數(shù)據(jù)庫 選項(xiàng),確認(rèn) MySQL 狀態(tài)為"正常",并記錄 root 密碼
步驟2:放行 MySQL 端口
- 在寶塔面板 安全 選項(xiàng)中檢查防火墻
- 確保 MySQL 端口 3306 已放行
- 如果使用了云服務(wù)器,還需在云服務(wù)提供商的控制面板中放行相應(yīng)端口
步驟3:創(chuàng)建數(shù)據(jù)庫專用用戶(推薦)
應(yīng)用程序最好使用專門的數(shù)據(jù)庫用戶而非 root:
- 在寶塔面板 數(shù)據(jù)庫 中添加新的 MySQL 數(shù)據(jù)庫
- 創(chuàng)建與之關(guān)聯(lián)的數(shù)據(jù)庫用戶
- 勾選"所有人"選項(xiàng)允許遠(yuǎn)程訪問
步驟4:解決認(rèn)證問題
如果仍然遇到認(rè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ù)庫用戶
- 限制訪問 IP:遠(yuǎn)程訪問設(shè)置中指定特定 IP 而非使用 % 通配符
- 使用強(qiáng)密碼:設(shè)置包含大小寫字母、數(shù)字和特殊字符的強(qiáng)密碼
- 定期更換密碼:通過寶塔面板定期更新數(shù)據(jù)庫密碼
- 啟用 SSL 連接:配置 MySQL 使用 SSL/TLS 加密連接
- 監(jiān)控異常登錄:定期檢查 MySQL 日志中的連接記錄
- 最小權(quán)限原則:只授予用戶必要的數(shù)據(jù)庫和表權(quá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無法連接的情況及解決方案的詳細(xì)內(nèi)容,更多關(guān)于寶塔安裝MySQL無法連接的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)
這數(shù)據(jù)庫應(yīng)用是一個(gè)應(yīng)用系統(tǒng)不可或缺的部分,關(guān)系型數(shù)據(jù)庫應(yīng)用大同小異,這里選擇MySQL作為數(shù)據(jù)庫平臺(tái)。下面通過本文給大家介紹關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解),需要的朋友可以參考下2017-06-06
Ubuntu10下如何搭建MySQL Proxy讀寫分離探討
MySQL Proxy是一個(gè)處于你的Client端和MySQL server端之間的簡(jiǎn)單程序,它可以監(jiān)測(cè)、分析或改變它們的通信2012-11-11
Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法
這篇文章主要介紹了Navicat中導(dǎo)入mysql大數(shù)據(jù)時(shí)出錯(cuò)解決方法,需要的朋友可以參考下2017-04-04
MYSQL初始化數(shù)據(jù)目錄的實(shí)現(xiàn)步驟
本文主要介紹了MYSQL初始化數(shù)據(jù)目錄的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
MySQL處理重復(fù)數(shù)據(jù)的學(xué)習(xí)筆記
在本篇文章里小編給大家分享的是一篇關(guān)于MySQL處理重復(fù)數(shù)據(jù)的學(xué)習(xí)筆記,需要的朋友們可以參考下。2020-03-03
Mac操作系統(tǒng)下MySQL密碼忘記后重置密碼的方法
本文給大家介紹Mac下忘記MySQL密碼后重置密碼的方法,下面通過關(guān)閉mysql服務(wù)器,配置短命令相關(guān)操作,完成重置密碼功能,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友可以參考下2016-06-06

