时间:2021-07-01 10:21:17 帮助过:5人阅读
Centos 刚装了mysql
yum install mysql
安装成功了,安装最后要求输入了密码,也输入了,OK
mysql -uroot -p
输入设置的密码
竟然报错了!
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YSE)
问朋友,他说初始密码是空的,可我命名设置了密码的阿。
密码留空
还是错误!
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
于是重改密码!
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking;
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(‘123456‘) where USER=‘root‘;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password:123456
mysql>
利用安全模式成功登陆,然后修改密码,等于给MySql设置了密码。登陆进去后,想创建一个数据库测试下。得到的结果确实:
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码。
参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。如下操作后就ok了:
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‘);这句话重新设置一次密码!
改密码的注意事项
假定现在用密码123456 可以登陆到数据库,要将密码改成zhou。
第一种方式:在终端里,注意现在还没有登陆到数据库,输入命令mysqladmin -p123456 password zhou
会出现这么一句警告:Warning: Using a password on the command line interface can be insecure.这表示已经改成功了。常见的误区:
误区一:用原密码已经登陆到mysql了,再这么改就会报错。一定注意,直接在终端里,未登陆前改。
误区二:将-p123456 写成 -p 123456.这样会报错的,-p后面不能带空格。
误区三:password前面加了一个“-”.也是会报错。
注意:password和新密码之间一定要有空格。新密码可以用""括起来。当有特殊字符时,这个引号是必须的。
第二种方式:登陆到mysql后,进行更改
mysql> update mysql.user set password=PASSWORD(‘yanyan‘) where user=‘root‘;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
误区:只运行了第一行命令,没有flush privileges是改不了密码的。全弄成小写的。经验证完全可行。
综合来看我更喜欢第一种改密码的方式。
Mysql 命令行启动问题ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
标签: