您的位置:首页 > 数据库 > MySQL

MySQL 8.0 以上版本重置 root 用户密码

2018-11-21 16:48 381 查看

MySQL 8.0 以上版本重置 root 用户密码

  1. 在 /etc/my.cnf 文件末尾追加 skip-grant-tables

    [root@abdefg mysql]# vim /etc/my.cnf
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8mb4
    
    [mysqld]
    # 设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端默认编码(数据库级别)
    character-set-server=utf8mb4
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    skip-grant-tables
  2. 重启MySQL服务

    [root@abdefg mysql]# service mysqld restart
  3. 免密码登录 root 用户(输入密码时直接回车即可)

    [root@abdefg bin]# mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 8
    Server version: 8.0.13 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
  4. 重置密码

    mysql> use mysql

    查询一下

    mysql> select host, user, authentication_string, plugin from user;

    执行修改报错

    mysql> alter user 'root'@'localhost'IDENTIFIED BY 'newpassword[@123](https://my.oschina.net/u/9520)';
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

    先执行flush privileges;然后会alter成功,要不然会alter失败

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> alter user 'root'@'localhost'IDENTIFIED BY 'newpassword[@123](https://my.oschina.net/u/9520)';
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> exit
    Bye
  5. 把/etc/my.cnf 文件末尾的 skip-grant-tables 去掉,重启MySQL服务,修改完成

参考文档:网络蚂蚁 奥斯维克鸡腿学徒

(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Affiliates Oracle MySQL