解决beego在ubuntu下连接mysql与重置mysql密码

解决beego在ubuntu下连接mysql与重置mysql密码

解决这个时把我吓坏了!!!

报错如下

register db Ping `default`, Error 1698: Access denied for user 'root'@'localhost'

开始我是想可能是ubuntu的原因,也可能是mysql8.0的原因吧,不管怎样,我讲一下解决这个问题的经历

开始我是找到个解决办法

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

这样就把密码弄没了,即无密码登陆,先说明一下,这个方法是可以解决上面抱错的问题的

但是我在输命令时输错了,哪里输入错了就不写了,反正导致的结果就是报错连不上数据库,用原来的密码也登陆不上数据库,我想,完了,密码坏掉了,数据库进不去了

然而我还是找到了解决办法,用重置初始密码的方式登陆数据库,然后在执行一次上面的操作,用来覆盖原来的错误操作,这样,整个总算是解决了。

我是这样做的:

1.进入目录:cd /etc/mysql,查看debian.cnf文件,使用这个文件里的user和password登陆,这样就登陆了进去了并可以进行一系列操作

下面谈的就与beego连接数据库无关了,而是如何更默认密码

2.进入mysql数据库user mysql

3.进行密码设置执行下列操作

mysql> update user set authentication_string=PASSWORD("自定义新密码") where user='root';

mysql> update user set plugin="mysql_native_password";

mysql> flush privileges;

最后退出数据库,并重启数据库

mysql> exit;

$ service mysql restart

这个问题让我想起了我以前解决windows上egg-mysql连接高版本mysql,也就是下面这段话:

博客地址

mysql8.0 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决此问题方法有两种,一种是升级客户端驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password。