或者

或者

我曾經apt install mysql-server在Ubuntu 16.04上安裝MySQL,但在安裝過程中,它沒有要求root密碼。

安裝後,ERROR 1045當我嘗試登入rootmysql_secure_installation拋出相同的錯誤時。我purged和autoremoved然後重新安裝但它不起作用。

我該如何解決這個問題?如果安裝時沒有設定root密碼,可以設定嗎?

這是我的安裝日誌:

將安裝以下附加軟體包:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7
  mysql-伺服器核心-5.7
推薦套餐:
  郵件x 蒂卡
將安裝以下新軟體包:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-伺服器 mysql-server-5.7
  mysql-伺服器核心-5.7
0 已升級,6 已新安裝,0 已刪除,0 未升級。
需要取得 0 B/17,9 MB 的檔案。
此操作後,將使用 160 MB 的額外磁碟空間。
你想繼續嗎? [是/否] 是
預配置包...
選擇先前未選擇的軟體包 libaio1:amd64。
(正在讀取資料庫...目前安裝的 227144 個檔案和目錄。)
準備解壓縮.../libaio1_0.3.110-2_amd64.deb ...
解壓縮 libaio1:amd64 (0.3.110-2) ...
選擇先前未選擇的套件 mysql-client-core-5.7。
準備解壓縮.../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
解壓縮 mysql-client-core-5.7 (5.7.12-0ubuntu1) ...
選擇之前未選擇的套件 mysql-client-5.7。
準備解壓縮.../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
解壓縮 mysql-client-5.7 (5.7.12-0ubuntu1) ...
選擇之前未選擇的套件 mysql-server-core-5.7。
準備解壓縮.../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
解壓縮 mysql-server-core-5.7 (5.7.12-0ubuntu1) ...
選擇先前未選擇的軟體包 mysql-server-5.7。
準備解壓縮.../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
解壓縮 mysql-server-5.7 (5.7.12-0ubuntu1) ...
選擇之前未選擇的套件 mysql-server。
準備解壓縮.../mysql-server_5.7.12-0ubuntu1_all.deb ...
解壓縮 mysql-server (5.7.12-0ubuntu1) ...
處理 libc-bin (2.23-0ubuntu3) 的觸發器 ...
處理 man-db 的觸發器 (2.7.5-1) ...
處理 systemd (229-4ubuntu4) 的觸發器...
正在處理 ureadahead (0.100.0-19) 的觸發器 ...
設定 libaio1:amd64 (0.3.110-2) ...
設定 mysql-client-core-5.7 (5.7.12-0ubuntu1) ...
設定 mysql-client-5.7 (5.7.12-0ubuntu1) ...
設定 mysql-server-core-5.7 (5.7.12-0ubuntu1) ...
設定 mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives:使用 /etc/mysql/mysql.cnf 在自動模式下提供 /etc/mysql/my.cnf (my.cnf)
檢查是否需要更新。
此安裝的 MySQL 已升級至 5.7.12,如果仍需要執行 mysql_upgrade,請使用 --force
設定 mysql 伺服器 (5.7.12-0ubuntu1) ...
處理 libc-bin (2.23-0ubuntu3) 的觸發器 ...

答案1

您可以透過啟動 mysql 而不載入授權表來恢復或設定 root 密碼,而無需知道目前密碼。

請注意$在命令中。這是指定您在輸入命令時看到的終端機提示符號。它顯示它是一行文本,但是實際鍵入的終端命令。這 ”mysql>" 前綴也是提示符,就是執行時得到的提示符mysql互動地。

這是命令列(命令列)執行此操作:
(務必停止當前伺服器在執行這些步驟之前。一次只能運行一台伺服器。

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

現在您可以在沒有密碼的情況下以 root 身分登入並執行所有命令,在本例中,將 root 密碼設定為 root。

$ sudo mysql --user=root mysql

如果您有 MySQL 5.6 或更低版本,這是您將在 mysql 中執行的設定 root 密碼:

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

在 MySQL 5.7 或更高版本中

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

從那裡,退出(終止正在運行的 msqld)mysql 並正常啟動它。

啟動和停止mysql服務的注意事項:

停止mysql:

$ sudo service mysql stop

啟動mysql(正常):

$ sudo service mysql start

終止臨時 mysql 安全模式會話:

$ sudo mysqladmin shutdown

答案2

在 Ubuntu 16.04 中安裝時不會要求輸入密碼,mysql但安裝成功後可以透過以下方式設定密碼:

mysql安裝完成後,執行指令:

sudo mysql_secure_installation

它將顯示:

注意:建議在生產使用中的所有 MariaDB 伺服器上執行此腳本的所有部分!請仔細閱讀每個步驟!

為了登入 MariaDB 並確保其安全,我們需要 root 使用者目前的密碼。 如果你剛剛安裝了MariaDB,並且還沒有設定root密碼,那麼密碼將為空,所以你應該在這裡按回車鍵。

Enter current password for root (enter for none): (這裡按回車鍵)

好的,密碼已成功使用,繼續...

設定 root 密碼可確保任何人在未經適當授權的情況下都無法登入 MariaDB root 使用者。

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

密碼更新成功!正在重新加載權限表.. ... 成功!


對於 Ubuntu 18.04 或mysql-server版本 5.7.22,此方法不起作用

要在 Ubuntu 18.04 中設定 root 密碼,首先遵循前三個命令或前兩個步驟LD詹姆斯的回答然後運行,

mysql> alter user 'root'@'localhost' identified by '<password>';

root用戶的密碼已設定!

或者

在 18.04 中依照以下步驟設定 root 密碼:

由於沒有為 root 使用者設定密碼,只需使用以下命令登入即可密碼為空

sudo mysql -u root -p
Enter password: (press enter as no password is set)

之後可以輕鬆執行查詢

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

答案3

安裝後只需:

  1. sudo mysql (是的,無用戶無通行證)

  2. 您現在位於 mysql 控制台中。執行:

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

  3. FLUSH PRIVILEGES;

就是這樣。現在您下次可以像往常一樣進入控制台:

mysql -u root -pmy_new_pass

答案4

  1. 有一個預設用戶帳戶。

    $ vim /etc/mysql/debian.cnf 
    

    您將從中獲得該帳戶,如下所示:

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. 您使用此帳號登入

    $ mysql -u debian-sys-maint -p
    
  3. 編輯你的root密碼

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. 重啟mysql

    $ /etc/init.d/mysql restart;
    

然後你可以mysql -u root -p使用之前的設定。

相關內容