
我有 3 台伺服器和 1 台 Windows 電腦在 LAN 中運行
HTTP server (Apache2, PHP5 & phpmyadmin) - 10.0.0.10
DNS - 10.0.0.1
MySQL - 10.0.0.40
Windows - 10.0.0.157
我剛剛在 mysql 伺服器上安裝了 mysql 的新副本。我首先評論了綁定地址。我透過執行以下操作授予了特權。
CREATE USER 'https'@'localuser' IDENTIFIED BY 'password';
CREATE USER 'https'@'10.0.0.10' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
但是每次我嘗試透過 http 伺服器連接到 mysql 時都會發生以下情況
mysql -u https -p
enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock'(2)
當我嘗試時
mysql -h 10.0.0.40 -P 3306 -u https -p
我收到一個不同的錯誤
ERROR 1045 (28000): Access denied for user 'https'@'10.0.0.10' (Using password: Yes)`
據我所知,我不確定為什麼會發生這種情況,我已經完成了需要配置的所有操作? :(
在我的 mysql 使用者表中,我有以下內容
user | host
https %
https 10.0.0.10
sqlserver 127.0.0.1
sqlserver ::1
debian-sys-maint localhost
https localhost
sqlserver localhost
sqlserver raspberrypi
有人可以指出我正確的方向嗎?我四處搜索,我看到的所有內容都指向註釋綁定地址行。
編輯sqlserver
除了已重命名的 root 帳戶之外,我什至無法使用任何用戶在本地登入。我嘗試添加新帳戶並在本地登錄,仍然是同樣的問題!
答案1
回答我自己的問題,喬斯部分回答了。
您不應註解掉綁定位址行(在 中/etc/my.cnf
)。相反,您應該將其指向伺服器的 IP 位址,即10.0.0.40
,然後重新啟動 MySQL。
與
GRANT ALL PRIVILEGES ON *.* TO ‘https’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
而不是
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
解決了問題。希望這能幫助其他遇到相同問題的人。
感謝各位的幫助!
答案2
如果你執行
netstat -an | grep 3306
您是否看到連接埠 3306 帶有 LISTEN 的條目?
答案3
服務啟動了嗎?如果沒有(或您不確定),請運行:
sudo service mysql start