下载安装完mysql,并尝试登录,出现如下问题 :
gaokaoli@kkjz-ThinkStation-P330:/etc/init.d$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
1.首先,这个问题是什么?
这个问题是root账户被拒绝登录mysql
2.其次,为什么会出现?
一般出现这种情况多数是安装新版本mysql,root密码是随机的,也不是空密码,输入了错误密码,自然无法访问mysql。所以要通过查看随机密码进入,再进行修改原来的密码并保存。
3.最后,怎么解决这个问题?
(1)在ubuntu的terminal(也即终端)上输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,
进入到这个配置文件,然后在这个配置文件中的[mysqld]这一块中加入skip-grant-tables
这句话。
sdw@sdwcomputer:~$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
养成每次修改配置文件就要重启服务的习惯,终端输入systemctl restart mysql
sdw@sdwcomputer:~$ service mysql restart
(2)在终端上输入mysql -u root -p,遇见输入密码的提示直接回车即可,进入mysql
(3)开始修改密码。先输入show databases; 查看所有数据库
选定数据库mysql。输入use mysql;
开始修改root用户的密码格式,改为明文
update user set plugin='mysql_native_password' where user='root';
刷新一下,多刷新几次,稳一点。
flush privileges;
开始修改密码。
alter user 'root'@'localhost' identified by '这里输入你自己的密码';
修改完成,刷新。多刷几次,稳一点。
flush privileges;
(4)回去修改配置文件,把忽略登陆密码的句子删掉。sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
(5)每次修改完配置文件后,别忘了重启,输入systemctl restart mysql
sdw@sdwcomputer:~$ service mysql restart
登录