本文主要介绍的是忘记MySQL数据库密码的实际解决方案,如果在实际操作中你不小心忘记MySQL数据库密码可以说是一件十分麻烦的事情,以下的文章就是对一麻烦事的破解,以下就是文章的主要内容描述。
破解本地MySQL数据库密码:
Windows:
1.用系统管理员登陆系统。
2.停止MySQL的服务。
3.进入命令窗口,然后进入 MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bin
4.跳过权限检查启动MySQL,
c:\mysql\bin>mysqld-nt ––skip-grant-tables
或则:c:\mysql\bin>mysqld ––skip-grant-tables
mysqld.exe是微软Windows MySQL server数据库服务器相关程序。mysqld-nt.exe是MySQL Daemon数据库服务相关程序。
5.[未验证]
重新打开一个窗口
进入c:\mysql\bin目录,设置root的新MySQL数据库密码
c:\mysql\bin>mysqladmin -u root flush-privileges password "newpassword"
c:\mysql\bin>mysqladmin -u root -p shutdown
将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。
5.[验证]或则:
重新开打一个命令提示符的窗口(CMD)
用空MySQL数据库密码方式使用root用户登录 MySQL;
- mysql -u root
修改root用户的密码;
- mysql> update mysql.user set password=PASSWORD('新密码') where User='root';
- mysql> flush privileges;
- mysql> quit
6.停止MySQL Server,用正常模式启动Mysql
7.你可以用新的密码链接到Mysql 了。
Unix&Linux:
1.用root或者运行mysqld 的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用–skip-grant-tables参数启动MySQL Server
- shell>mysqld_safe –skip-grant-tables &
4.为设置新MySQL数据库密码
- shell>mysqladmin -u root flush-privileges password "newpassword"
5.重启MySQL Server
MySQL修改root密码的多种方法
linux下mysql的root密码忘记解决方法
作者:PHP领地 发布日期:2010-01-20 点击:49次
摘要:一. MySQL密码的恢复方法之一 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MyS...
这里是广告链接
一. 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. 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld --skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD('newpassword') where User='root';
mysql> flush privileges;
mysql> quit
重新启动MySQL
/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。
方法1: 用SET PASSWORD命令
mysql -u root
mysql> SET PASSWORD FOR
'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin
-u root password "newpass"
如果root已经设置过密码,采用如下方法
mysqladmin -u root
password oldpass "newpass"
方法3: 用UPDATE直接编辑user表
mysql -u
root
mysql> use mysql;
mysql> UPDATE user SET Password =
PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH
PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe
--skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET
password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH
PRIVILEGES;
第一种方法:
root用户登录系统
/usr/local/mysql/bin/mysqladmin -u root -p password
新密码
enter password 旧密码
第二种方法:
root用户登录mysql数据库
mysql> update mysql.user set
password=password(”新密码”)where User=”root”;
mysql> flush privileges;
mysql> quit ;
mysql忘记root密码如何处理?
如果 MySQL 正在运行,首先结束mysql进程: killall mysqld
启动 MySQL (非正常方式起动):/usr/local/mysql/bin/mysqld_safe
–skip-grant-tables &
这样就可以不需要密码进入 MySQL :/usr/local/mysql/bin/mysql -u
root -p(要求输入密码时直接回车即可)
mysql> update user mysql.set
password=password(”新密码”) where user=”root”;
mysql> flush privileges;
mysql> quit;
重新结束进程:killall mysqld
用正常方式启动 MySQL :/usr/local/mysql/bin/mysqld_safe
-user=mysql &
附录:
MySQL修改密码的方法大全:
- mysql> update user set Password=password('newpassword') where User='root';
- MYSQLADMIN -u root -p PASSWORD mypasswd
可以修改MYSQL文件夹中的MY.INI文件
- mysql> SET PASSWORD FOR myuser@localhost = PASSWORD('mypasswd');
- mysql> GRANT USAGE ON *.* TO myuser@localhost IDENTIFIED BY 'mypassword';