我的Mysql数据库在云服务器上,很久没有使用了,现在换了新的电脑 找不到原来的密码。
我先用Xshell通过主机名(ip地址) +linux的用户密码连接到主机
登陆shell连接服务器
找到MySQL配置文件,我的是MySQL5.7,在
mysqld.cnf位置
打开之后需要在 [mysqld] 下面添加这样一条命令skip-grant-tables
这大概是mysql的用户权限表
vim操作就不详细说了,相信大家都会,:wq保存退出。
然后重启数据库,我的命令是service mysql restart
输入mysql -u root -p
然后他会叫你输入密码,直接敲回车就可以,不出意外就进去了
跳过密码登录MySQL
然后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能够正常登录,不输入密码的却不行了。
备注:(摘抄,如果有错误的话)
如果出现: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位密码。