加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql密码没法更改处理方案

发布时间:2023-09-05 14:45:05 所属栏目:MySql教程 来源:
导读:本文主要给大家简单讲讲mysql密码无法更改处理方案,相关专业术语大家可以上网搜集或者找一些专业书籍补充一下,这里就不涉猎了,直奔主题,希望可以给大家带来一些实际帮助。

ERROR 1820 (HY000): You must res
本文主要给大家简单讲讲mysql密码无法更改处理方案,相关专业术语大家可以上网搜集或者找一些专业书籍补充一下,这里就不涉猎了,直奔主题,希望可以给大家带来一些实际帮助。
 
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
 
今天在MySql5.7操作时报错:You must SET PASSWORD before executing this statement解决方法,需要的朋友可以参考下
 
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql> create database yan1;
 
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
 
mysql> SET PASSWORD = PASSWORD('123456');
 
Query OK, 0 rows affected (0.03 sec)
 
mysql> create database yan1;
 
Query OK, 1 row affected (0.00 sec)
 
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!大爷的,真费劲啊。
 
这位仁兄也遇到了相同的问题。
 
最近新装好的mysql在进入mysql工具时,总是有错误提示:
 
# mysql -u root -p
 
Enter password:
 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
 
或者
 
# mysql -u root -p password 'newpassword'
 
Enter password:
 
mysqladmin: connect to server at 'localhost' failed
 
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
 
现在终于找到解决方法了。本来准备重装的,现在不必了。
 
方法操作很简单,如下:
 
# /etc/init.d/mysql stop
 
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
 
# mysql -u root mysql
 
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
 
mysql> FLUSH PRIVILEGES;
 
mysql> quit # /etc/init.d/mysqld restart
 
# mysql -uroot -p
 
Enter password: <输入新设的密码newpassword>
 
MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决
 
mysql> SET PASSWORD = PASSWORD('123456');
 
Query OK, 0 rows affected (0.03 sec)
 
mysql> create database roger;
 
Query OK, 1 row affected (0.00 sec)
 
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!
 
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
 
运行mysqld_safe --skip-grant-tables &
 
如果此时不想被远程连接:mysqld_safe --skip-grant-tables --skip-networking &
 
使用mysql连接server
 
更改密码:update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
 
*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了
 
而是将加密后的用户密码存储于authentication_string字段
 
mysql> flush privileges;
 
mysql> quit;
 
修改完毕。重启
 
killall -TERM mysqld。
 
mysqld_safe &
 
然后mysql就可以连接了
 
但是此时操作似乎功能不完全,还要alter user...
 
alter user 'root'@'localhost' identified by '123';
 
网文说酱紫也可以:set password for 'root'@'localhost'=password('123');
 
自启动
 
cp mysql.server /etc/init.d/mysql
 
chmod +x /etc/init.d/mysql
 
chkconfig --add mysql
 
reboot试试看
 
===========================
 
以下方法修改比较快捷:
 
 mysql> SET PASSWORD = PASSWORD('new_password');
 
Query OK, 0 rows affected (0.01 sec)
 
mysql> SELECT 1;
 
+---+ | 1 | +---+ | 1 | +---+
 
1 row in set (0.00 sec)
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章