问题描述
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
备注:新安装完数据库后,在 xshell 上登录 mysql 后,运行 SQL 语句报如上错误
解决方案一
# /etc/init.d/mysql stop // 关闭 mysql
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql // 进入 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>
解决方案二
mysql> SET PASSWORD = PASSWORD('123456'); // 用这句话重新设置一次密码,就可以了
备注
方案一、二可以搭配使用,先用一,再用二