Ubuntu安装MySQL 8更改默认用户密码
MySQL版本:8.0.26
卸载安装方法一
该方法可针对任意版本的mysql:
sudo rm -rf /var/lib/mysql/
sudo rm -rf /etc/mysql/
sudo apt-get autoremove mysql* --purge -y
sudo apt-get remove apparmor -y
sudo apt-get install mysql-server mysql-common -y
卸载安装方法二
用之前需要知道mysql版本号,所以需要dpkg --list查看。
卸载
四步卸载依次完成,虽然可能有偶多余的操作,但最好按顺序全部执行一遍:
方法一:
dpkg --list
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get --purge remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get --purge remove mysql-common (非常重要)
清理残余数据:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
安装
sudo apt-get install mysql-server #=》 安装最新版MySQL服务器
sudo apt-get install mysql-client #=》
sudo apt-get install libmysqlclient-dev #=》 安装开发包
第一步:进入目录:输入:
sudo cat /etc/mysql/debian.cnf
第二步:使用输出中的账号密码登录MySQL。
mysql -u debian-sys-maint -p b0VhUKEA9XeKm4CY
第三步:进入数据库使用以下语句
(注意:在MySQL旧版本中,使用语句update user set authentication_string=password(“newPassword”) where user=“root”;来设置密码,在mysql8版本中已经不行了,会报错。)
在新版本中,进入mysql后用下面命令进行设置密码:
use mysql;
flush privileges;
alter user 'root'@'localhost' identified by '123456';
flush privileges
quit
注意:如果在直接执行上述命令的alter user 'root'@'localhost' identified by '123456';还是会报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,这是密码设置太简单而不符合新版本MySQL的密码策略要求,如果想要使用简单密码,需要进行以下设置:
question2:密码问题
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
answer2:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
1 mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
2 mysql> set global validate_password.special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
3 mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)
4 mysql> set global validate_password.mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 6 |
| validate_password.mixed_case_count | 0 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 0 |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
第四步:重启mysql服务器
service mysql restart;
操作集合,复制粘贴一步到位
第一步:
sudo cat /etc/mysql/debian.cnf
mysql -u debian.cnf中的账号 -pdebian.cnf中的密码
use mysql;
flush privileges;
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
set global validate_password.special_char_count=0;
set global validate_password.length=6;
set global validate_password.mixed_case_count=0;
SHOW VARIABLES LIKE 'validate_password%';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
quit
sudo service mysql restart;
参考文章:
ubuntu下MySQL的安装与卸载
mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

浙公网安备 33010602011771号