正常设置MySQL管理密码

Posted 独行盗客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正常设置MySQL管理密码相关的知识,希望对你有一定的参考价值。

正常的前提是:已知当前mysql管理用户(root)的密码。


方法1,在Shell命令行下设置
使用mysqladmin管理工具,需要验证旧的密码。比如,以下操作将会把root的密码设置为 1234567:
[root@dbsvr1 ~]# mysqladmin -u root -p password \'1234567\'

方法2,以root登入mysql> 后,使用SET PASSWORD指令设置
这个与新安装MySQL-server后首次修改密码时要求的方式相同,平时也可以用:
mysql> SET PASSWORD FOR root@localhost=PASSWORD(\'1234567\');


方法3,以root登入mysql> 后,使用GRANT授权工具设置
这个是最常见的用户授权方式:
mysql> GRANT all ON *.* TO root@localhost IDENTIFIED BY \'1234567\';


方法4,以root登入mysql> 后,使用UPDATE更新相应的表记录
这种方法与恢复密码时的操作相同:
mysql> UPDATE mysql.user SET password=PASSWORD(\'1234567\') WHERE user=\'root\' AND host=\'localhost\';          //重设root的密码
mysql> FLUSH PRIVILEGES;                                  //刷新授权表
在上述方法中,需要特别注意:当MySQL服务程序以 --skip-grant-tables 选项启动时,如果未执行“FLUSH PRIVILEGES;”操作,是无法通过SET PASSWORD或者GRANT方式来设置密码的。比如,验证这两种方式时,都会看到ERROR 1290的出错提示:
mysql> SET PASSWORD FOR root@localhost=PASSWORD(\'1234567\');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> GRANT all ON *.* TO root@localhost IDENTIFIED BY \'1234567\';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 

以上是关于正常设置MySQL管理密码的主要内容,如果未能解决你的问题,请参考以下文章

MySQL设置管理员密码无法生效的案例一则

navicat管理mysql,mysql设置密码之后,navicat使用新密码不能链接空密码却可以

Mysql常用sql脚本与配置管理(密码忘记,角色管理,分表,连接数,高并发,索引,级联查询)

MySQL权限管理

MySQL数据库管理

MySQL数据库登录密码管理