mysql 5.7 设置root密码方法

来源:互联网 发布:殷素素 俞岱岩 知乎 编辑:程序博客网 时间:2024/04/29 05:26

摘要:最新版的mysql 5.7与旧版的mysql重新设置root用户密码的方法不一样,

mysql5.7 设置root密码方法: update mysql.user set authentication_string=PASSWORD('****') where user='root' and host='localhost'。

  • 操作系统:
    [root@localhost ~]#  cat /etc/redhat-release CentOS Linux release 7.1.1503
  • mysql 版本5.7.9
    mysql> select version()    -> ;+-----------+| version() |+-----------+| 5.7.9     |+-----------+1 row in set (0.00 sec)
  • 安装mysql的yum repo 源:
    rpm -ivh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
  • 安装mysql
    yum install mysql-community-serveryum install mysql-community-client
  • 修改mysql 配置文件跳过密码验证
    [mysqld]skip-grant-tablesskip-networking
  • 启动mysql:
    systemctl start mysqld
  • 匿名登录mysql 设置root密码:
    [root@localhost ~]# mysqlWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.9 MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> update mysql.user set PASSWORD=PASSWORD('test') where user='root' and host='localhost';ERROR 1054 (42S22): Unknown column 'PASSWORD' in 'field list'mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'test' ;ERROR 1131 (42000): You are using MySQL as an anonymous user and anonymous users are not allowed to change passwordsmysql> update mysql.user set authentication_string=PASSWORD('test') where user='root' and host='localhost';Query OK, 1 row affected, 1 warning (0.07 sec)Rows matched: 1  Changed: 1  Warnings: 1mysql> flush privileges;Query OK, 0 rows affected (0.06 sec)mysql> exit;Bye
  • 取消跳过密码认证:
    [mysqld]#skip-grant-tables#skip-networking
  • 重启mysql:
    systemctl restart mysqld
  • 必须使用alter user 重置密码:
    mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  • 重新设置密码:
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '********'
  • 密码需要复杂度要求:
    mysql> SHOW VARIABLES LIKE 'validate_password%';+--------------------------------------+--------+| Variable_name                        | Value  |+--------------------------------------+--------+| validate_password_dictionary_file    |        || validate_password_length             | 8      || validate_password_mixed_case_count   | 1      || validate_password_number_count       | 1      || validate_password_policy             | MEDIUM || validate_password_special_char_count | 1      |+--------------------------------------+--------+6 rows in set (0.00 sec)


    ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
    mysql> set password=password('xxxx');
    Query OK, 0 rows affected (0.00 sec)



0 0