ubuntu 18.04安装mysql后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' 问题解决!

一、问题描述

我在安装的过程中没有弹出任何窗口,而且也没有报错。在配置mysql.php文件时,死活连不上,当我在登录mysql确认一下用户名和密码时,问题就出现了,

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

找到了一个解释出现这种问题的原因(并非解决办法)

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因解决

二、解决办法

然而,到了这里,还是不能解决问题

因为配置文件/etc/mysql/my.cnf下没有[mysqld]这一段啊哭

后来,又在网上折腾了许久,终于在/etc/mysql/mysql.conf.d/mysqld.cnf 这个文件里找到了[mysqld]这一段,感动啊大哭

 

至此有人认为,mysql5.7.17将原先意义的my.cnf改为mysqld.cnf,并放在/etc/mysql/mysql.conf.d/路径下。

到此,遇到的问题总算解决了,真是开心呀!

三、真正解决我问题又容易看懂的方法

回顾一下MySQL的安装过程:

sudo apt update

sudo apt-get install mysql-server mysql-client

进入重头戏——问题的解决过程

1.打开/etc/mysql/mysql.conf.d/mysqld.cnf 文件,命令如下

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

2.找到 [mysqld] 段,并加入一行“skip-grant-tables”,保存退出 。如下图,

3.重启mysql服务,用空密码进入mysql管理命令行,切换到mysql库,操作命令如下,

sudo service mysql restart
$ mysql

     会出现 Welcome to the MySQL monitor.  Commands end with ; or \g.

    mysql> use mysql
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A
        Database changed

    mysql> update mysql.user set authentication_string=password('新密码'),plugin='mysql_native_password'where user='root';
        Query OK, 1 row affected, 1 warning (0.00 sec)
        Rows matched: 1  Changed: 1  Warnings: 1

    mysql> flush privileges;
        Query OK, 0 rows affected (0.01 sec)

    mysql> exit;
        Bye

4.回到sudo vi  /etc/mysql/mysql.conf.d/mysqld.cnf,把刚才加入的那一行“skip-grant-tables”注释或删除掉。

5.再次重启mysql服务sudo service mysql restart,使用新的密码登陆,修改成功。

   ~ $  mysql -u root -p

    输入新密码
        Welcome to the MySQL monitor.  Commands end with ; or \g.
    mysql>

6.到这里,问题解决!

参考地址:https://blog.csdn.net/learner_lps/article/details/62887343

没有更多推荐了,返回首页