
我曾經apt install mysql-server
在Ubuntu 16.04上安裝MySQL,但在安裝過程中,它沒有要求root密碼。
安裝後,ERROR 1045
當我嘗試登入root
並mysql_secure_installation
拋出相同的錯誤時。我purge
d和autoremove
d然後重新安裝但它不起作用。
我該如何解決這個問題?如果安裝時沒有設定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
安裝後只需:
sudo mysql
(是的,無用戶無通行證)您現在位於 mysql 控制台中。執行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
就是這樣。現在您下次可以像往常一樣進入控制台:
mysql -u root -pmy_new_pass
答案4
有一個預設用戶帳戶。
$ vim /etc/mysql/debian.cnf
您將從中獲得該帳戶,如下所示:
user = debian-sys-maint password = nUZTARYslBsASzpw
您使用此帳號登入
$ mysql -u debian-sys-maint -p
編輯你的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;
重啟mysql
$ /etc/init.d/mysql restart;
然後你可以mysql -u root -p
使用之前的設定。