越来越多的项目开始选择使用mysql5.7版本了。在这里整理一下mysql5.7用户管理及权限分配的一些常用命令,以供后期工作中的需要!

mysql for yum源下载:

centos7:https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 

centos6:https://repo.mysql.com//mysql80-community-release-el6-1.noarch.rpm 

  1. mysql5.7默认root用户密码:

    mysql5.7在安装启动后会默认设置root用户的密码,该秘密为系统随机产生,可以通过mysql.log日志文件获取,如下图,默认使用yum安装mysql5.7后的默认日志路径:

    image.png

  2. 修改root用户密码:

    shell>mysql -u root -p  #输入第一步获取的随机密码

    mysql>use mysql;

    mysql>update user set authentication_string = password('rootpasswd'), password_expired = 'N', password_last_changed = now() where user = 'root'; #注意:mysql5.7中passwd字段已经更新为authentication_string,password_expired:在MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间;

    mysql>flush privileges;

  3. 如果忘记root用户密码,可以参考这篇帖子进行操作:https://www.cnblogs.com/activiti/p/7810166.html 

  4. 用户授权:

    由于mysql5.7版本不允许直接给用户授权,所以给指定用户授权前,先创建该用户。

    mysql>CREATE USER 'username'@'host' IDENTIFIED BY 'password';   #用户默认必须含有字母、特殊字符,大小写、数字、特殊字符的随机数

    mysql>GRANT ALL PRIVILEGES ON databasename.* TO server@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;

    mysql>FLUSH PRIVILEGES;

    #如果不想设置的密码那么复杂,可以通过下面的命令进行设置

    mysql>set global validate_password_policy=0; 

    或配置文件中修改成:

    [mysqld]

    validate_password_policy=0; 


关于密码过期问题的探讨,请参考这篇帖子:https://blog.csdn.net/chszs/article/details/50651264 

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误参考:https://www.cnblogs.com/ivictor/p/5142809.html 


【mysql】You must reset your password using ALTER USER statement before executing this statement报错处理


解决方式如下:


MySQL版本5.7.6版本以前用户可以使用如下命令:

mysql> SET PASSWORD = PASSWORD('rootpasswd'); 


MySQL版本5.7.6版本开始的用户可以使用如下命令:

mysql> ALTER USER USER() IDENTIFIED BY 'rootpasswd';