簡體   English   中英

Linux MySQL-無法登錄到root

[英]Linux MySQL - Can't login to root

因此,我為Ubuntu上的所有應用程序/設置編寫了此安裝程序腳本,最近在升級到16.04后使用了該腳本。 它要做的一件事是安裝mysql。 我這樣做是為了殺死那些用戶提示,因為我不希望我的腳本停止供用戶輸入。 這是下面的代碼:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y mysql-server

現在,我嘗試從終端登錄mysql,但不能這樣做。 它已安裝並正在運行,但我一直拒絕root用戶訪問。

mysqladmin -u root -p password
Enter password: 
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''

我沒有輸入任何密碼,因為我在任何時候都沒有設置密碼。

任何人都有解決此問題的想法嗎? 謝謝。

如果要為root設置密碼:

對於較新版本的MySQL(對於MariaDB <10.2,請使用底部的查詢,因為它不支持alter user,但仍使用auth_socket)

如果您安裝了5.7,並且沒有提供密碼給root用戶,它將使用auth_socket插件。 該插件無關緊要,不需要密碼。 它只是檢查用戶是否正在使用UNIX套接字進行連接,然后比較用戶名。

取自MySQL 5.7中帶有“插件:auth_socket”https://askubuntu.com/a/801950/395418的 “更改用戶密碼”

因此,為了將plugin更改回mysql_native_password

  1. 用sudo登錄:

     sudo mysql -u root 
  2. 更改plugin並使用單個命令設置密碼:

     ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

當然,您也可以使用上面的命令設置一個空密碼。

僅作記錄,還有另一種方法可以僅更改plugin而不提供密碼(將其保留為空):

    update mysql.user set plugin = 'mysql_native_password' where User='root';
    FLUSH PRIVILEGES;

是的,我現在很傻。 問題實際上是Linux權限,而不是mysql。 我使用sudo安裝了它,我需要使用sudo登錄。 無需密碼,只需sudo mysql -u root -p -h本地主機。 只需在密碼提示下按Enter,中提琴就可以進入。

謝謝您的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM