解决Ubuntu安装mysql之后登录不进去的问题
之前自己安装mysql遇到过非常多的坑,每次重装老是要搜索半天还不一定能解决问题,特此记录下!
本文针对mysql-server8.0以上的版本!8.0以上!8.0以上!
关于网上有许多解决新装mysqlroot用户登录不进去的问题,但是大多都是之前发的老帖或者老版本的mysql,自己试了好多已经解决不了问题。
1.安装过程我就不详细记录了,完成之后登录mysql出现如下问题:
access denied for user ‘root’@'localhost 用户访问被拒绝
2.因为在安装过程中没有提示用户设置密码,所以需要使用mysql自动创建的用户进行登录:
查看debian用户名及密码:
kangel@tm1701:~$ sudo apt cat /etc/mysql/debian.cnf
可以看到,有一个名为 debian-sys-maint 的用户,password就是它对应的密码,然后我们使用这个用户密码进行登录:
kangel@tm1701:~$ mysql -u debian-sys-maint -p
ok,mysql登录进来了,接下来就要修改root的密码及权限。
3.修改root用户
首先切换到mysql数据库,查看user表中root用户的权限及密码:
mysql> use mysql
mysql> select Host,user,authentication_string,plugin from user;
查看用户的权限,是否是mysql_native_password,如果不是,则将auth_sock改为mysql_native_password。
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
OK,修改权限,密码一步到位。
网上有很多帖子修改密码使用 _update user set password=password(‘你的密码’) where user=‘root’ and host=‘localhost’;_这种的,因为mysql 8.0+ 版本 password 字段更改了, 采用原来的 password = password(“XXX”) 语句会报语法错误,所以要使用ALTER语句进行修改
4.quit退出,重新登录
可以看到root用户已经可以登录,权限,密码也已经设置成功。