zoukankan      html  css  js  c++  java
  • 如何重设 MySQL 的 root 密码

    MySQL下创建新用户、新数据库、设定访问权限控制都需要用到root密码。万一把root密码忘了,该怎么办?

    幸运地是,重设密码很容易。

    安全模式重置法

    基本的思路是,以安全模式启动mysql,这样不需要密码可以直接以root身份登录,然后重设密码。

    首先,我们停掉MySQL服务:

    sudo service mysql stop  
    
    #mac停止的方法
    mysql.server stop
    mysql.server start
    mysql.server restart

     修改用户密码 强力推荐

    mysql> alter user 'root'@'localhost' identified by 'youpassword';   

    以上命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。(标红适合mac)

    以安全模式启动MySQL:

    sudo mysqld_safe --skip-grant-tables --skip-networking &  

    注意我们加了--skip-networking,避免远程无密码登录 MySQL。 (如果提示需要开启mysql则开启即可在mac上测试需要开启

    这样我们就可以直接用root登录,无需密码:

    mysql -u root  

    接着重设密码:

    mysql> use mysql;  
    mysql> update user set password=PASSWORD("mynewpassword") where User='root';  
    mysql> flush privileges;  

    如果提示以下错误

    MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list' 

    新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,
    输入update mysql.user  set password=password('root') where user='root'时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',
    原来是mysql数据库下已经没有password这个字段了,password字段改成了
    authentication_string
     
    所以更改语句替换为
    update mysql.user set authentication_string=password('root') where user='root' ;即可

    重设完毕后,我们退出,然后启动 MySQL 服务:

    mysql > quit  

    quit不需要分号。

    重启服务:

    sudo service mysql restart  
    
    mac的重启方法
    mysql.service restart
    同样,以上命令适用于Ubuntu和Debian,Centos、Fedora和RHEL需要用mysqld替换mysql。
    
    现在可以尝试用新密码登录了:
    mysql -u root -p mynewpassword  

    其他方案

    以上是通用方案,在Ubuntu和Debian系统上,有一个debian-sys-maint用户,Debian类系统下一些系统脚本对mysql的操作是通过这个用户完成的。所以我们可以通过这个用户来修改 root 密码。该用户的密码可以在/etc/mysql/debian.cnf下找到:

    # Automatically generated for Debian scripts. DO NOT TOUCH!
    [client]
    host     = localhost  
    user     = debian-sys-maint  
    password = PASSWORD  
    socket   = /var/run/mysqld/mysqld.sock  
    [mysql_upgrade]
    host     = localhost  
    user     = debian-sys-maint  
    password = PASSWORD  
    socket   = /var/run/mysqld/mysqld.sock  
    basedir  = /usr  

    用该用户登录 MySQL 后,也可以修改密码(具体修改过程见上):

    sudo mysql -u debian-sys-maint -p  
  • 相关阅读:
    B.Icebound and Sequence
    Educational Codeforces Round 65 (Rated for Div. 2) D. Bicolored RBS
    Educational Codeforces Round 65 (Rated for Div. 2) C. News Distribution
    Educational Codeforces Round 65 (Rated for Div. 2) B. Lost Numbers
    Educational Codeforces Round 65 (Rated for Div. 2) A. Telephone Number
    Codeforces Round #561 (Div. 2) C. A Tale of Two Lands
    Codeforces Round #561 (Div. 2) B. All the Vowels Please
    Codeforces Round #561 (Div. 2) A. Silent Classroom
    HDU-2119-Matrix(最大匹配)
    读书的感想!
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/8252842.html
Copyright © 2011-2022 走看看