mysql訪問被拒絕
我在我的 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