Ubuntu

mysql訪問被拒絕

  • July 8, 2011

我在我的 Ubuntu 機器上使用 MySQL 時遇到了一些困難。剛剛安裝了 Apache、MySQL、PHP 和 phpMyAdmin。phpMyAdmin 給出:

#1045 Cannot log in to the MySQL server

每次登錄嘗試。我試過使用者名’root’和空密碼,使用者名’root’和密碼’root’,使用者名’mysql’和密碼’mysql’,使用者名’mysql’和密碼’root’。

Access denied for user root@x.x.x.x當我嘗試mysql在終端中執行時,我也會收到錯誤:

mysql -u root

或者

mysql -u root -p

或者

sudo mysql

或上面列出的任何組合。當我嘗試這些時,我也被拒絕訪問:

mysqladmin -u root password secret

sudo /etc/init.d/mysql stop

甚至

service mysql stop

unknown instance.

那麼 - 誰能告訴我如何進入我的數據庫?謝謝。

更新:

當我跑步時,ps aux | grep mysql我看到了sudo mysqld --skip-grant-tables

更新 2:

重新啟動後,我看到mysqld正在執行。然後我嘗試service mysql stop得到以下內容:

user@host:$ service mysql stop
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.47" (uid=1000 pid=2267 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init"))

什麼?

更新 3:

我終於設法通過使用以下命令更改了我的 root 密碼:

sudo dpkg-reconfigure mysql-server-5.1

仍然不知道為什麼我以前無法登錄(不記得以前設置過任何密碼)。另外,不確定守護程序現在是否會在重新啟動後正確執行…

好的,我認為首先要檢查它是否真的在執行。執行

ps aux | grep mysql

並檢查包含mysqld. 如果有一個,它正在執行,你應該能夠連接(更多下文)。如果沒有,那麼您的服務沒有執行,因此您無法連接或停止它。

它也有可能變成了殭屍(雖然我從未見過)。在這種情況下,您最簡單的選擇可能是重新啟動整個盒子。我知道這聽起來很激烈,但殭屍很難殺死(因此得名)。

如果服務正在執行,但您仍然無法連接,那麼可能 MySQL 沒有在監聽。

預設情況下,MySQL 只允許來自 127.0.0.1 的連接。如果您嘗試通過電腦的實際 IP 地址進行連接,則需要告訴 MySQL 偵聽該 IP 地址。相關行在 my.cnf 中,如下所示:

bind-address            = 127.0.0.1

修改地址為你的網路介面的IP地址並重啟服務。或者,或者,連接到 127.0.0.1

引用自:https://serverfault.com/questions/288093