我的Mysql数据库在云服务器上,很久没有使用了,现在换了新的电脑 找不到原来的密码。
我先用Xshell通过主机名(ip地址) +linux的用户密码连接到主机

找到MySQL配置文件,我的是MySQL5.7,在

打开之后需要在 [mysqld] 下面添加这样一条命令
skip-grant-tables
这大概是mysql的用户权限表
vim操作就不详细说了,相信大家都会,:wq保存退出。
然后重启数据库,我的命令是
service mysql restart
输入
mysql -u root -p
然后他会叫你输入密码,直接敲回车就可以,不出意外就进去了

然后use mysql 切换到mysql数据库,没错就是mysql数据库的mysql数据库,它里面有个user表 下面执行sql语句
update user set authentication_string=password('123456') where user='root';
将authentication_string 设成 123456?大概是这意思,它说query ok ,1row affected 意思就是真的OK了 不信的话你可以select查询一下

然后
flush privileges;
输入这个刷新 一下权限。(很重要!!!)

然后
vim /etc/mysql/mysql.conf.d/mysqld.cn

把配置文件改回去,保存退出之后,再次重启数据库
然后正常登录发现 密码123456能够正常登录,不输入密码的却不行了。
借鉴:https://baijiahao.baidu.com/s?id=1598051082885355242&wfr=spider&for=pc
备注:(摘抄,如果有错误的话)
如果出现:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
意思就是说你密码现在的规则不行,规则什么不行呢?比如密码长度啊,是否纯数字啊 大小写混用啊 等等。别急有办法解决。这时候你只需要:
set global validate_password_policy=0; set global validate_password_mixed_case_count=2;
这下哈哈了吧 policy 0就是纯数字OK的
case_count =2,就是最低8位密码,如果是1或者小于1默认最低4位密码。
网友评论