Ubuntu---mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

查看mysql版本:

安装完成后,登录mysql的时候就出现了如下错误:

因为安装的过程中没让设置密码,可能密码为空,但无论如何都进不去mysql。

下面是处理过程:

Step1:修改mysqld.cnf配置文件

在ubuntu的terminal(也即终端)上输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,进入到这个配置文件,然后在这个配置文件中的[mysqld]这一块中加入skip-grant-tables这句话。

 1 [mysqld]
 2 #
 3 # * Basic Settings
 4 #
 5 user              = mysql
 6 pid-file          = /var/run/mysqld/mysqld.pid
 7 socket           = /var/run/mysqld/mysqld.sock
 8 port              = 3306
 9 basedir          = /usr
10 datadir          = /var/lib/mysql
11 tmpdir          = /tmp
12 lc-messages-dir   = /usr/share/mysql
13 skip-external-locking
14 character-set-server=utf8
15 collation-server=utf8_general_ci
16 skip-grant-tables    <-- add here

作用:就是让你可以不用密码登录进去mysql。

保存:wq,退出。输入:service mysql restart,重新启动mysql。

设置完后,就可以不用密码进入,显示输入密码时,按回车就可以了。

如果你想更改密码,那就接着往下看。

step2:设置root密码

在终端上输入mysql -u root -p,遇见输入密码的提示直接回车即可,进入mysql后,分别执行下面三句话:

use mysql;   然后敲回车
update user set authentication_string=password("你的密码") where user="root";  然后敲回车
flush privileges;  然后敲回车

结果如下图:

Ubuntu---mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法_第1张图片

然后输入quit,退出mysql。

step3:注释掉skip-grant-tables

利用

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

重新进入到mysqld.cnf文件中去把刚开始加的skip-grant-tables这条语句给注释掉。

 1 [mysqld]
 2 #
 3 # * Basic Settings
 4 #
 5 user              = mysql
 6 pid-file          = /var/run/mysqld/mysqld.pid
 7 socket           = /var/run/mysqld/mysqld.sock
 8 port              = 3306
 9 basedir          = /usr
10 datadir          = /var/lib/mysql
11 tmpdir          = /tmp
12 lc-messages-dir   = /usr/share/mysql
13 skip-external-locking
14 character-set-server=utf8
15 collation-server=utf8_general_ci
16 # skip-grant-tables    <-- add # here

再返回终端输入mysql -u root -p,输入设置的密码,就可以进入数据库了 

你可能感兴趣的:(mysql,linux,mysql,ubuntu,linux)