mysql的root密码忘记解决方法

来源:互联网 发布:网络热词高兴 编辑:程序博客网 时间:2024/05/22 08:01

                                                         mysql的root用户密码忘记解决方法

    引言:最近用mysql用的比较多,前天想自己搞个私库,在本地玩玩,居然发现忘记root用户的密码了。后来在网上看了看,找到一个比较全的解决方案,就转载了,留作后用!。

一、 MySQL密码的恢复方法之一
   1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。
因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的
状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对
外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全
状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。
   2.修改MySQL的登录设置:
        # vi /etc/my.cnf
       在[mysqld]的段中加上一句:skip-grant-tables
   例如: 
     [mysqld] 
    datadir=/var/lib/mysql 
    socket=/var/lib/mysql/mysql.sock 
    skip-grant-tables
    保存并且退出vi。
  3.重新启动mysqld
    # /etc/init.d/mysqld restart 
   Stopping MySQL: [ OK ]
   Starting MySQL: [ OK ]
 4.登录并修改MySQL的root密码
    # /usr/bin/mysql
   Welcome to the MySQL monitor. Commands end with ; or g.
   Your MySQL connection id is 3 to server version: 3.23.56
   Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
   mysql> USE mysql ;
   Reading table information for completion of table and column names
   You can turn off this feature to get a quicker startup with -A
   Database changed
   mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
   Query OK, 0 rows affected (0.00 sec)
   Rows matched: 2 Changed: 0 Warnings: 0
   mysql> flush privileges ;
   Query OK, 0 rows affected (0.01 sec)
   mysql> quit
   Bye 
 5.将MySQL的登录设置修改回来
   # vi /etc/my.cnf
  将刚才在[mysqld]的段中加上的skip-grant-tables删除
  保存并且退出vi。
 6.重新启动mysqld
   # /etc/init.d/mysqld restart
   Stopping MySQL: [ OK ]
   Starting MySQL: [ OK ]
 7.恢复服务器的正常工作状态
  将步骤一中的操作逆向操作。恢复服务器的工作状态。


二、 MySQL密码的恢复方法之二
  如果忘记了MySQL的root密码,可以用以下方法重新设置:
   1. KILL掉系统里的MySQL进程;
    killall -TERM mysqld
  2. 用以下命令启动MySQL,以不检查权限的方式启动;
    safe_mysqld --skip-grant-tables &
  3. 然后用空密码方式使用root用户登录 MySQL;
    mysql -u root
  4. 修改root用户的密码;
    mysql> update mysql.user set password=PASSWORD('新密码') where User='root';
    mysql> flush privileges;
    mysql> quit
  重新启动MySQL,就可以使用新密码登录了。

三、 MySQL密码的恢复方法
       有可能你的系统没有safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复
1.停止MYSQL服务:
      CMD打开DOS窗口,输入 net stop mysql
     (您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;

    cd到自己mysql的安装bin目录,执行下面的语句:
    mysqld --skip-grant-tables
3.重新打开一个CMD命令行窗口, 然后用空密码方式使用root用户登录 MySQL(不用输入密码,直接按回车);
    mysql -u root
4. 修改root用户的密码;
    mysql> update mysql.user set password=PASSWORD('newpassword') where User='root';
5.刷新权限表

     mysql> flush privileges;
     mysql> quit
6.重新启动MySQL
     mysql restart
就可以使用新密码newpassword 登录了。   

转自:http://blog.chinaunix.net/uid-26569333-id-3067038.html

原创粉丝点击