全新安装后无法像其他旧 MySQL 版本那样使用 root ID 和空/无密码登录到 MySQL 数据库
最佳答案
那里有很多答案说要重新安装mysql或使用一些组合
mysqld_safe --skip-grant-tables
和/或
UPDATE mysql.user SET Password=PASSWORD('password')
和/或别的什么...
...这些都不适合我
这是对我有用的,在 Ubuntu 18.04 上,从顶部开始
特别感谢 this answer为了让我摆脱对此的挫败感......
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
注意以下内容:
user = debian-sys-maint
password = blahblahblah
然后:
$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from debian.cnf
mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | auth_socket |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; // When you don't have auto-commit switched on
要么:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
或者:
// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
然后:
mysql> FLUSH PRIVILEGES;
mysql> COMMIT; // When you don't have auto-commit switched on
mysql> EXIT
$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!
https://stackoverflow.com/questions/33991228/