Ubuntu 18 MySQL root 帳密設定

在 Ubuntu 18 server 安裝了 phpmyadmin 結果 root 帳密無法登入,會出現類似 root 帳號不能空白。

工作環境:
  Windows 10 + virtualbox
  guest: Ubuntu 18 server

用 root 登入 mysql:
$ sudo su -
$ mysql -uroot
確認你的使用者在資料庫中

mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User                  | Host      |
+------------------+-----------+
| admin               | localhost |
| root                  | localhost |

設定你的密碼
mysql> UPDATE user SET authentication_string=PASSWORD("YOUR_PASSWORD") WHERE User='root';
改認證方式
mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
最用權限
mysql> FLUSH PRIVILEGES;


=================== 如果已經被改到進不去資料庫的解法
$ sudo service mysql stop

$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld

$ sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
$ [1] ####

$ jobs
[1]+  Running     sudo /

用上面的程序改完之後:
$ sudo pkill mysqld


=================== 以下可能用不到

刪除目前的 root@localhost 帳號

mysql> DROP USER 'root'@'localhost';

重建你的 root 帳號:記得把下列的密碼換成你要的
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'YOUR_PASSWORD';

設定你的 root 帳號權限 (別忘了 flush privileges)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;



登出 MySQL 不再使用 sudo 登入


=================== Windows 下的改法
windows>mysqld stop
windows>mysqld --skip-grnat-talbes
windows>mysql
mysql>UPDATE mysql.user SET Password=PASSWORD('NEW-PASSWORD') WHERE User='root';
mysql>FLUSH PRIVILEGES;
mysql>exit;
windows>mysqladmin -u root -p shutdown
windows>mysqld start

留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

Excel 巨集合併多個 Excel 檔案