解决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。