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
工作環境:
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
留言
張貼留言