2012-11-24 60 views
1

所以如果我型mysql -u root我理應登錄,但在嘗試創建或訪問數據庫,我得到這個可愛的錯誤:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'test1'。我沒有模糊的想法,爲什麼以root身份登錄後,它試圖訪問數據庫的作爲''@'localhost',它現在讓我有點瘋狂。可能有關,當我嘗試設置root密碼時,出現錯誤mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation'。我嘗試通過運行apt-get purge mysql-server刪除mysql服務器,然後重新安裝沒有運氣。這是運行Ubuntu Server 12.10 64位和MySQL確實在運行。耙似乎被劫持的MySQL

- 編輯 -

我不知道是否有可能是沒有 root用戶。所以我試着用--skip-grant-tables啓動MySQL並創建root用戶,但是我給出了這個: ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。有趣的樂趣有趣的樂趣。

- 編輯Again--

我已經採取了鈍錘對MACHING萬物MySQL和跑了作爲根apt-get remove .*mysql.*apt-get purge .*msyql.*,然後重新安裝了一切。這次的安裝定期進行。如果沒有人能夠提出這樣的答案(並且這可能無助於問題不再存在測試了),我會自己回答這個問題......看起來像這樣的東西,絕對刪除不好的安裝是最好的選擇。

- 再次編輯 -

我發現了什麼導致了問題。我運行了rake db:createrake db:migrate,我的新安裝並正常運行的MySQL現在又回到了相同的問題。我想知道是否耙式任務已經接管了MySQL,就像那個真菌接管了一隻螞蟻......我的MySQL是一隻耙出的殭屍螞蟻(?!?!?!?!)。

+0

我不認爲你應該在交換機和你的用戶名之間有一個空格。試試'mysql -uroot' – Cyclonecode

+0

這次我沒有碰運氣。 –

+0

-u選項後,你必須有一個空間 – rsz

回答

0

mysql -u root登錄mysql並輸入show grants for 'root'@'localhost';。這應該告訴你,root是否被允許。

順便說一句,你沒有提供密碼登錄?

+0

試圖這樣做返回'ERROR 1044(42000):拒絕訪問用戶「」 @「localhost」的數據庫「mysql'',是的,沒有密碼登錄。我有一種感覺,那就是沒有root賬號或者任何賬號。我可以鍵入'mysql -u ChromeSandwich'並獲得相同的結果。 –

1

如果您使用的是Ubuntu,則您的mysql root密碼應該是系統root用戶的密碼,除非您在mysql安裝過程中對其進行了更改。

在任何其他情況下,停止mysql。

執行此:

sudo mysqld_safe --skip-grant-tables & 

它將使您登錄到MySQL的root沒有密碼。

現在執行這個:

UPDATE mysql.user SET Password=PASSWORD(‘new_password’) WHERE User=’root’; 
FLUSH PRIVILEGES; 

不要忘記;最後不要忘記FLUSH PRIVILEGES;現在,MySQL的重新啓動:

sudo /etc/init.d/mysql start 

這應該這樣做。

如果root用戶通過命運的一些奇怪的扭曲,不提供這一行:

sudo mysqld_safe --skip-grant-tables & 

還是要去給你一個選擇創建新的root用戶,但在這種情況下,使用谷歌找到如何。

+0

這些都不會起作用,因爲用戶'''localhost'既不能更新表格也不能創建用戶。用戶空值沒有權限。這個MySQL安裝真的很奇怪......以前從來沒有像這樣。當你通過apt-get安裝它時,它通常要求輸入一個root密碼,但在這種情況下沒有任何類型的密碼。 –

0

我幾秒鐘前有這個問題,來這裏的答案,但後來我開始從我中mysqladmin命令得到的答案是什麼的思考。 所以,我想這此1: 日誌作爲root在終端中使用須藤SU(根密碼),則與此 鍵入沒有引號但空間是必須的:

mysqladmin -u @'hostname' (us your hostname then press enter).