问题描述:
系统版本: Ubuntu18.04 Mysql版本: 5.7.26
今天在使用阿里云OPSX的阿里镜像apt源 安装mysql数据库的时候( apt-get install mysql-server ),全程不要求输入密码
当安装完成过后,使用了空密码(enter)登录了数据库(也没见使用/var/log/mysql/error下的密码)。接着使用了update 、 alter 修改root的密码。
亦或是 mysql_secure_installration 、mysqladmin 重置密码。 在登录时还是使用(enter)就进入了。使用navicat始终无法登录
问题发现:
在查看 /var/log/mysql/error 日志时,发现
plugin .... 于是想到是密码所使用的插件问题。
问题解决:
一、enter可进入数据库情况
1、mysql -uroot -p 登录数据库
2、执行sql语句
update user set authentication_string=PASSWORD("new password") where User='root';
update user set plugin="mysql_native_password" where User='root';
3、刷新权限
flush privileges;
exit
4、重新登录,这是发现需要密码键入
补充: 用navicat连接时,error日志出现
修改配置文件,加入 skip-name-resolve=1 重启mysql
二、需要初始密码进入情况(初始密码不知道)
1、停止mysql
sudo service mysql stop
2、以忽略权限的安全模式启动MySQL
sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables&
注意, 如果设错了密码,再次用本方法时,上面这条mkdir命令仍然需要
3、以root用户登录
sudo mysql --user=root mysql
登录后会出现mysql>提示符,说明已经成功
4、执行sql语句
update user set authentication_string=PASSWORD("") where User=‘root’;
update user set plugin=“mysql_native_password” where User=‘root’;
注意第2句,如果没有这一句,会提示“ Plugin ‘auth_socket’ is not loaded”错误
5、提交修改,退出mysql
flush privileges;
quit;