近段时间因看服务器安全设置比较多,发现我司服务器的密码太过于简单,特修改了一回,网上找了一下,发现这个命令:mysqladmin -u用户名 -p旧密码 password 新密码;没做本地测试直接上服务器执行,这下惨了,修改成功却无法登录,说是root没有权限,唉,网上仔细一看确实存在这种问题,这种修改的方法不太靠谱避免使用下列方法一。
方法一:使用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例1:E:\mysql>mysqladmin -uroot password root
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
例2:再将root的密码改为root123。
E:\mysql>mysqladmin -uroot -proot password root123
方法二:直接更新 user 表
mysql>UPDATE user SET password=PASSWORD("test123") WHERE user='test';
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR test=PASSWORD('test123');
mysql> FLUSH PRIVILEGES;
方法三:使用 grant
格式:grant 权限 on 数据库.表格| 其他 to 用户@主机 IDENTIFIED BY 口令
例1:给test用户在本地localhost 所有权限(除了GRANT OPTION),口令为 test
(相当于修改了test 用户的口令)
mysql>grant all on *.* to test@localhost identified by "test";
等同于
mysql>grant all on *.* to test @localhost identified by PASSWORD " *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 ";