在Ubuntu20.04下如何使用--default_authentication_plugin=mysql_native_password运行mysqld,mysql为8.0版本
时间: 2023-09-20 17:12:30 浏览: 126
在 Ubuntu 20.04 上运行 MySQL 8.0 版本时,可以使用以下方式启动 MySQL 服务并指定默认认证插件为 `mysql_native_password`:
1. 首先,编辑 MySQL 配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`:
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
2. 找到 `[mysqld]` 段落,在该段落下添加以下两行配置:
```
default_authentication_plugin=mysql_native_password
skip-grant-tables
```
第一行表示默认认证插件为 `mysql_native_password`,第二行表示启动 MySQL 服务时跳过授权表的检查。
3. 保存并退出配置文件。
4. 停止 MySQL 服务:
```
sudo systemctl stop mysql
```
5. 以跳过授权表检查的方式启动 MySQL 服务:
```
sudo mysqld --skip-grant-tables
```
6. 在 MySQL 命令行中登录:
```
mysql -u root -p
```
此时无需输入密码即可登录。
7. 修改 `mysql.user` 表中 `root` 用户的认证方式:
```
mysql> use mysql;
mysql> update user set authentication_string=password('your_password') where user='root';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;
```
注意将 `your_password` 替换为你想要设置的密码。
8. 停止 MySQL 服务:
```
sudo systemctl stop mysql
```
9. 移除 `skip-grant-tables` 配置:
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
删除 `skip-grant-tables` 行并保存。
10. 启动 MySQL 服务:
```
sudo systemctl start mysql
```
现在,你可以使用设置的密码登录 MySQL 了。
阅读全文