首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 用戶權限管理與 PHP 連接兼容性問題解決

     編輯:MySQL 資料庫相關知識

一、遠程連接授權標準流程

mysql -u root -p
USE mysql;
-- 授權指定庫、指定 IP
GRANT ALL ON db_name.* TO 'remote_user'@'192.168.1.%' IDENTIFIED BY 'strong_pass';
-- 或授權所有庫(慎用)
GRANT ALL ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'strong_pass';
FLUSH PRIVILEGES;
\q

驗證:mysql -u remote_user -p -h server_ip

防火牆:確保 3306 端口對來源 IP 開放(iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT)。

二、PHP 4/5 連接 MySQL 5.x 協議不兼容

報錯:Client does not support authentication protocol requested by server; consider upgrading MySQL client

原因:MySQL 4.1+ 採用 41 字節雜湊密碼,舊客戶端只支援 16 字節老格式。

三、解決方案

方案 A:將賬號密碼改為老格式(推薦)

UPDATE mysql.user SET Password = OLD_PASSWORD('new_pass') WHERE User = 'root';
FLUSH PRIVILEGES;

或

SET PASSWORD FOR 'user'@'%' = OLD_PASSWORD('new_pass');

注意:所有同用戶名的 host 記錄(localhost、127.0.0.1、% 等)均需更新,否則仍會報錯。

方案 B:升級客戶端庫

  • PHP 端換用 mysqli / PDO_MySQL(原生驅動 mysqlnd),支援新協議。
  • 系統層面升級 libmysqlclient 至 5.1+。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved