%EF%BC%9A%E4%BD%BF%E7%94%A8%E8%80%85%E3%80%8Croot%E3%80%8D%40%E3%80%8Clocalhost%E3%80%8D%E7%9A%84%E5%AD%98%E5%8F%96%E8%A2%AB%E6%8B%92%E7%B5%95%EF%BC%88%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A2%BC%EF%BC%9ANO%EF%BC%89.png)
所以一開始我在嘗試建立在 phpmyadmin 中使用的資料庫時遇到了這個錯誤。ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
我看了好幾個地方,我的一個朋友告訴我嘗試重新安裝mysql,因為我昨天剛重新安裝了伺服器。
所以我決定重新安裝 mysql,現在我甚至無法運行安裝程式而不會出現此錯誤:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
'root'@'localhost'
當嘗試使用我創建的資料庫安裝腳本時,我也遇到了錯誤。這是我嘗試安裝腳本時遇到的錯誤:執行 Centos 6
PHP 5.3.3(我使用的腳本是Ioncubed,而PHP 5.4,我不需要它)。
編輯:
如果你要問我為什麼不先環顧四周,我已經環顧四周了!我沒有運氣找到像我一樣遇到此類問題的其他人。
編輯2:
我現在已經成功安裝MySQL了。我想回去再試一次,安裝程序進展順利。但我仍然收到上圖提供的 root@localhost 錯誤。我已經檢查過以確保配置沒有神奇地使用“root”@“localhost”。
答案1
資料庫的配置確實使用 root@localhost,並且該密碼是在您第一次安裝它時選擇的。它不是系統的 root 密碼。 MySQL root 和系統 root 是不同的帳戶,可能有不同的密碼。
嘗試記住並嘗試透過mysql -u root -p
嘗試來猜測它。如果沒有成功,請在 Google 上搜尋如何刪除 MySQL 設定並重新開始。
答案2
MySQL 不同地對待「localhost」和「127.0.0.1」;第一個用於運行 Unix 套接字連接/var/lib/mysql/mysql.sock
或其他。因此,您的表中需要兩個不同的GRANT
指令mysql.user
(至少我在 OpenSuSE Linux 上這樣做;在 Windows 等系統上,您的情況可能會有所不同):
(以 root 身分連接 mysql)
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
然後,很明顯您的腳本確實嘗試安裝為“root@localhost”。如果您無法編輯腳本或安裝程式配置,您可以透過以下方式解決暫時地禁用 root 密碼:
USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
……為了提高安全性,不要從 mysql 註銷這樣做之後。安裝完成後,您必須重設root密碼:
GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
這並不能解決問題安裝後腳本會做什麼。有可能它會仍然在本機上使用 root,並且仍然不使用密碼。因此,一旦您重置密碼,它將停止工作。您需要在腳本的設定中找到 root 和 localhost 的引用(它們可以單獨指定):必須有類似的內容
user = root
host = localhost
dbname = somedb
或者可能
'username' => 'root',
"hostaddr" => "localhost",
...
並改變它們。您只需發出一條新GRANT
語句即可在 MySQL 中建立新使用者。
答案3
在正常情況下,堆疊溢位有幫助。但如果不同版本衝突,則無法重設密碼成功。這種情況,請重新安裝mysql。這就是我遇到的!
步驟如下: 1)找到已安裝的mysql
# rpm -qa|grep mysql
2)刪除mysql
#rpm -e '程式'
3)刪除lib&include
#rm -rf /usr/lib/mysql
#rm -rf /usr/include/mysql
4)刪除mysql資料或備份它。
#mv /var/lib/mysql ~/mysql_backup
5)重新安裝mysql
#yum install mysql mysql-server
6)啟動mysql服務並嘗試
#chkconfig mysqld on
#service mysqld start
#mysql -uroot -p
--這一步,如果安裝成功,密碼應該為空。只需按 Enter 鍵即可進入 mysql 資料庫。