2014-10-07 183 views
0

我在嘗試配置MySQL服務器Ubuntu 14.04。安裝完成後,它運行良好,包括shell mysql和MysqlWorkbench。MySQL錯誤訪問被拒絕

在系統重新啓動後,一切都停止了。如果我嘗試與外殼連接我得到這個:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

我得到這個錯誤與任何用戶......即使有--skip-grant-tables選項我沒有獲得任何東西。來自Workbench的連接測試也不起作用,儘管服務器似乎正在正常運行。

當我安裝mysql服務器時,我被要求提供一個root密碼,並且我選擇了一個非常簡單的密碼,因爲我將它用於調試環境,所以我不認爲這是一個拼寫錯誤的問題。

我想我已經嘗試了所有可用的技巧,但仍然無法訪問服務器。

任何幫助將不勝感激。 非常感謝您提前!

編輯1:這裏的my.cnf中

[mysqld] 
# 
# * Basic Settings 
# 
user  = mysql 
pid-file = /var/run/mysqld/mysqld.pid 
socket  = /var/run/mysqld/mysqld.sock 
port  = 3306 
basedir  = /usr 
datadir  = /var/lib/mysql 
tmpdir  = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking 
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address  = 127.0.0.1 

的一部分,服務器似乎運行:

[email protected]:~$ sudo netstat -tap | grep mysql 
tcp  0  0 localhost:mysql   *:*      ESCUCHAR 1158/mysqld  
+0

如果測試連接不工作,那麼你的連接字符串是錯誤的(是你的用戶名和密碼正確的MySQL? – jbutler483 2014-10-07 11:06:09

回答

0

這裏的官方文檔,你的問題可以由以下原因引起各種各樣的東西。而你的問題沒有詳細描述你的問題。

http://dev.mysql.com/doc/refman/5.0/en/access-denied.html

我想舉的文檔,最常見的「初學者的錯誤」

確保服務器沒有被配置爲忽略網絡 連接或(如果你是嘗試遠程連接),它已將 配置爲僅在本地監聽其網絡接口。 如果服務器使用--skip-networking啓動,則根本不會接受 TCP/IP連接。如果服務器以 --bind-address = 127.0.0.1啓動,它將只在本地監聽回送接口上的TCP/IP連接,並且不會接受遠程連接 。


如果你得到下列錯誤,這意味着你使用的是不正確 root密碼:

「殼>中mysqladmin -u根-pxxxx版本拒絕訪問用戶 'root'@'localhost'(使用密碼:是)「

如果即使沒有上述錯誤t指定了一個 密碼,這意味着您在某些 選項文件中列出了錯誤的密碼。


本地主機是你本地主機名的代名詞,而且也是 默認主機到客戶端嘗試,如果你不指定主機 明確地連接到的。

要避免此類系統出現此問題,可以使用--host = 127.0.0.1 選項明確指定服務器主機。這將使得到本地mysqld服務器的TCP/IP 連接成爲可能。您也可以使用 指定使用本地 主機的實際主機名的--host選項來使用TCP/IP。在這種情況下,即使您在與服務器相同的主機上運行客戶端程序 ,也必須在服務器主機上的用戶表 行中指定主機名。

希望這可能對您有所幫助。

如果這不能解決您的問題,那麼您可能只是錯誤輸入了密碼,所以這裏是「如何恢復」。

如果你只是設置你的服務器,你很有可能在你的bash歷史中獲得它。要檢查這一點,請輸入歷史記錄並搜索最佳情況下包含明文通行證的命令。

大多數情況下,上述內容不是一個選項,要解決此問題,您必須搜索系統維護用戶(位於/etc/mysql/debian.cnf中的Debian上),您將看到用戶名和維護用戶的密碼。 使用該用戶連接到數據庫並使用grant命令更改用戶的詳細信息。

+0

非常感謝!對不起,我有點新手在這個,所以我不知道是什麼樣的我已經編輯了這個問題,並且包含了my.cnf的一部分,我用mysqladmin得到了同樣的錯誤,如你所說,這個問題似乎是一個錯誤的密碼......因爲我無法更改根目錄密碼,因爲我得到相同的錯誤,是否有一個配置文件,我可以改變它? – JuanN 2014-10-07 11:39:56

+0

下面是如何發生奇蹟,假設你在你的shell中鍵入你的密碼,嘗試以下操作:如果你輸入'幸運的是你可以在那裏看到你的密碼,如果失敗了,你可以嘗試導航到/ etc/mysql並尋找一個系統維護用戶(在Debian上稱爲debian.cnf)。如果我沒有誤導這應該在Ubuntu上是一樣的,如果你沒有爲你的root用戶設置密碼,密碼必須是一個空字符串(只需將該字段留空或當它提示你輸入密碼時按回車鍵)。 – Jeredepp 2014-10-07 11:46:32

+0

魔法發生了!非常感謝!!!當我安裝mysql時,我被要求提供一個root密碼,但不是從shell,而是從一個奇怪的文本編輯器,它類似於舊的MS-DOS版本,所以密碼沒有存儲在命令行歷史記錄中。當我打開debian.cnf文件時,沒有「root」條目,只是「debian-sys-maint」。用這個用戶及其密碼(也在文件中)mysql工作,我更改了mysql.user表並恢復了我的root密碼。不過,我不明白PC重新啓動後發生了什麼......無論如何,非常感謝您的幫助! – JuanN 2014-10-07 12:02:33