ubuntu 安装mysql8遇到的问题

遇到问题:

Mysql版本
mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
以下是我重新卸载安装过几次mysql都会报的错误,不管如何按照网上的教程改配置文件,最终都还是报拒绝本地链接,我的报错如下:

root@ubuntu:/etc/mysql/mysql.conf.d# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)这种情况是没有输入密码
或者
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)这种情况是输入了密码,但是没有输对

我根据网上教程,mysql8安装成功之后有一个默认用户和密码,具体查看方式如下:

sudo  cat /etc/mysql/debian.cnf

输入指令后,会提示输入当前ubuntu用户密码,输入后我的内容显示如下:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint(这个就是默认用户)
password = X4k1p11iFNCzUGQn (这个就是密码)
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = X4k1p11iFNCzUGQn
socket   = /var/run/mysqld/mysqld.sock

我登录的方式如下:

 mysql -udebian-sys-maint -pX4k1p11iFNCzUGQn

就是这样按照顺序执行下来,还是提示无法登录。我为这个烦恼了很久,找了很多办法,都解决不了,还尝试重装。最后经过是要彻底的卸载,然后重启系统,再次安装后才可以使用默认用户登录。


mysql8 安装

一定要更新源

sudo apt-get update  #更新源
sudo apt-get install mysql-server #安装

验证安装

systemctl status mysql

提示以下内容就说明安装成功
在这里插入图片描述
使用mysql 默认用户登录,使用下面命令,查看root用户

use mysql
select User,Host,plugin,authentication_string from user;

打印结果如下,可以看到root用户对应authentication_string字段是空的,也是还没有初始化密码

+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| User             | Host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| debian-sys-maint | localhost | caching_sha2_password | $A$005$%n(ds3wwI8J,"ff3AsLC578..CIRj9ll0.Wqf3AGoE5YAfDAfI.uv3qD |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | auth_socket           |                                                                        |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

接下来就是给root用户初始化密码

alter user 'root'@'localhost' identified by '123456';

刷新mysql权限

flush privileges;

当执行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

会报错

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

是因为密码设置不符合要求,使用下面的命令查看密码设置要求:

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.02 sec)

可以看到validate_password.length是8,即密码的长度为8个字符,validate_password.policy 为MEDIUM 密码的等级为中级,可以修改validate_password.policy 字段为LOW等级,即可,命令如下:

set global validate_password.policy=0;

执行成功后,重新执行修改root密码的sql语句,记得再次执行 flush privileges,退出来,然后执行以下命令,重启mysql服务。

service mysql restart

设置root 的host 允许远程访问,同样执行结束后要运行flush privileges

update mysql.user set Host ='%' where User = 'root';

user的Host字段是%说明是任何地址可以链接,一般这个字段都默认localhost,只允许本地连接。

完全卸载mysql:

查看mysql依赖

dpkg --list | grep mysql

删除指令

sudo apt-get remove mysql-common

sudo apt-get autoremove --purge mysql-server

然后再用下面指令查看是否还有依赖没有卸载

dpkg --list | grep mysql 

最后用下面命令清除残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

dpkg -P是完全删除文件,可以在网上搜到相关的使用教程

查看从MySQL APT安装的软件列表, 执行后没有显示列表, 证明MySQL服务已完全卸载

dpkg -l | grep mysql | grep i
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值