今天在家裡的 lubuntu 18.04 電腦上想要把冷凍很久的 mysql 拿出來用,
但因為事業做太大、 serves 養太多了,
突然發現完全想不起來這個不重要的 mysql 帳號的 root 用戶密碼。
沒關係, 記得搜尋得到解法。 找到一篇
2012 年的文章 , 但是在執行
mysqld_safe --skip-grant-tables &
的時候, 卻看到這樣的訊息: mysqld_safe mysqld
from pid file /var/run/mysqld/mysqld.pid ended
然後 mysqld_safe 馬上結束, 我也就無法繼續往下做。
[2020/6/27] 至於 ubuntu 20.04 上面的 mysql 8, 又要用 另一個方法, 煩吶~
從 stackoverflow 的 這個解答 再找到 改設定檔的方法 以及 修改密碼的正確指令, 最後配合 *ubuntu 18.04 的狀況做一點小修改, 得到以下。
- 從 /etc/mysql/my.cnf 得知應該編輯 /etc/mysql/mysql.conf.d/mysqld.cnf 。
在
[mysqld]
下面加兩句:skip-grant-tables skip-networking
- 在 (危險的) 免密碼模式下重新啟動 mysql :
systemctl restart mysql
- 免密碼直接登入:
mysql -u root
- 在 mysql 命令列底下:
use mysql; update user set authentication_string=PASSWORD("大忙人記得住的密碼") where User='root'; update user set plugin="mysql_native_password" where User='root'; flush privileges; quit;
- 再次編輯 /etc/mysql/mysql.conf.d/mysqld.cnf , 把剛才那兩句註解掉。
- 以正常 (需要密碼的模式) 重新啟動 mysql :
systemctl start mysql
- 然後就可以
mysql -u root -p
並輸入密碼、 登入做事了。
然後寫完文章要加 tag 時又突然發現不知道該下什麼標籤才好... 平常根本沒在用任何資料庫軟體, 我是 mysql 逃兵 啊 orz
在Terminal 走到
回覆刪除update user set authentication_string=PASSWORD("新密碼") where User='root';
這步時顯示出
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("新密碼") where User='root'' at line 1
的訊息
請問大大是為什麼呢謝謝(Ubuntu和LAMP的新手)
唉,這一篇又過時了。 請改參考新的一篇: https://newtoypia.blogspot.com/2020/06/root-password-mysql-8.html 又忘記 root 密碼之 mysql 8 版
刪除