安装mysql-server之后,root用户不能登录问题

Posted daemonfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装mysql-server之后,root用户不能登录问题相关的知识,希望对你有一定的参考价值。

解决步骤:

step1

mysql -u root -p  # 报错
# 报错信息……

step2

sudo cat /etc/mysql/debian.conf    # 查看此文件内debin-sys-maint用户的信息,这是系统自动生成的
mysql -u debin-sys-maint -p        # 用debin-sys-maint 登录mysql,密码在debin.conf里面

step3 修改root用户的密码

参考mysql查看数据库、表的基本命令

mysql> show databases;    # 显示数据库列表
mysql > use mysql;    # 进入mysql这个数据库
mysql> show tables;    # 显示表;
mysql> update user set authentication_string=PASSWORD("这里填要修改的密码") where user='root' and Host='localhost'

step4

$ mysql -u root -p
# 权限拒绝,不能访问mysql
$ sudo service mysql restart     # 这样也不行
再次执行step2、step3
mysql> use mysql;
mysql> select * from user;    # 一堆信息,尝试找出我们可能需要的列
mysql> select User, plugin, authentication_string, account_locked, password_expired, password_last_changed from user;
# 可以看到用户root的plugin值为auth_socket,其他用户的plugin值都为mysql_native_password
# 此时,找到root用户不能登录mysql的原因:
# root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用root权限登录就不用密码,修改root密码和登录验证方式。
# 所以,之前我仅仅是更改了root用户的密码,但是root用户的登录验证方式还是auth_socket的,
# 所以,要更改root账户认证模式
mysql> update user set authentication_string=PASSWORD('密码'), plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> exit;
# 重启mysql-server
$ sudo service mysql restart

附录

# flush privileges 什么意思
# mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。-
# 检查mysql是否运行
sudo netstat -tap | grep mysql
# 删除MySQL的方法
sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
# 上面的可能会有些是多余的,之后需要清理残余数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
# 配置root远程登陆
mysql> grant all on *.* to [email protected]'%' identified by '密码' with grant option;
mysql> flush privileges;
mysql> exit;

以上是关于安装mysql-server之后,root用户不能登录问题的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 18.04用apt安装mysql-server

因此直接yum -y install mysql mysql-server 即可完成安装

全新的 mysql-server 安装不要求输入密码

fabric自动化安装mysql-server

centos7解决yum install mysql-server没有可用包?

mysql安装完之后root不能登录问题