一、问题描述
我在安装的过程中没有弹出任何窗口,而且也没有报错。在配置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