linux服务器下忘记mysql root登录密码解决办法

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 登录了。

时间: 2024-10-24 03:18:52

linux服务器下忘记mysql root登录密码解决办法的相关文章

mysql-WEB程序在linux服务器下连接Mysql超时!

问题描述 WEB程序在linux服务器下连接Mysql超时! 请问下,我linux服务器部署WEB项目后,启动没报超时,但是一访问有数据的页面就报连接数据库超时.本地跑就没问题,我改了Mysql的默认时间,还是这样.要怎么解决?求大神 解决方案 先看你的 web程序能不能正常连接上数据库,然后就是执行数据库查询是否成功 解决方案二: 看是什么数据,一个是你连接字符串,是不是根本没法打开数据库. 尝试先注释掉数据库访问的代码看看

在linux和windows服务器下忘记mysql的root密码重置方法

文章要介绍关于忘记mysql的root密码重置方法,同时介绍了在不同的操作系统,下面介绍了在linux和windows中的解决办法,有需要了朋友可以了解一下. 如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置: linux操作方法 在my.cnf的[mysqld]字段加入: 代码如下   skip-grant-tables 然后重启你的mysqld,这样久没有密码了. 然后进入mysql. 代码如下  UPDATE mysql.user SET Password=PASSWOR

windows 下忘记mysql root密码的更改方法_Mysql

mysql数据库忘记了root密码是件很痛苦的事,本文介绍如何解决windows环境下mysql服务器忘记root密码的解决方法. 1.关闭MySQL服务 window+r运行输入net stop mysql 2.在mysql的bin目录下打开命令行 空白处shift+鼠标右键---->找到在此处打开命令窗口 3.输入mysqld -nt --skip-grant-tables 出现信息以"set to off"结束,说明成功 4.同样地点另开一个命令行,输入mysql,回车 5

LINUX服务器下开启MYSQL远程连接权限

于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限.下面是基本的步骤:   1.登录到mysql中,为root进行远程访问的授权,执行下面的命令: 1.1.改表法: 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称&

VPS下修改MySQL root用户密码的方法_Mysql

1.首先停止正在运行的MySQL进程 Linux下,运行 killall -TERM mysqld Windows下,如果写成服务的 可以运行:net stop mysql,如未加载为服务,可直接在进程管理器中进行关闭. 2.以安全模式启动MySQL Linux下,运行 /usr/local/mysql/bin/mysqld_safe –skip-grant-tables & Windows下,在命令行下运行 X:/MySQL/bin/mysqld-nt.exe –skip-grant-tabl

windows xp系统忘记开机登录密码解决办法

  1.进入windows xp系统用户登录界面,提示用户输入密码,以进一步登入系统; 2.用鼠标光标选中白条处,显示为输入状态; 3.在该状态下,同时按下Ctrl+Alt+Delete组合键并重复按下3遍; 4.这时候就登录到windows提示界面,在用户名栏中填入Administrator,密码处空白即可,点击确定键; 5.进入windows xp系统界面,在Adiministrator高级管理员账户中将fly账户的密码删除,具体步骤: a.鼠标点击xp系统"开始"菜单,选择&qu

linux系统下crontab mailrop造成的拒绝服务解决办法

一.故障现象 接业务侧同事电话,其中一台server无法ssh正常连接,同时也收到宕机短信告警信息.直接ping了下主机地址可以ping通,ssh端口连接提示:ssh_exchange_identification: Connection closed by remote host .通过管理口登录查看报错:" login: failure forking: Cannot allocate memory/etc/initscript: fork : Cannot allocate memory

Linux下忘记mysql密码该如何修改mysql密码_Linux

初始密码为空,使用空密码登陆mysql执行下列语句 mysql>use mysql; mysql> UPDATE user SET password=PASSWORD("root") WHERE user='root'; mysql> FLUSH PRIVILEGES; mysql> quit; 修改/opt/lampp/phpmyadmin/config.inc.php 找到如下代码: $cfg['Servers'][$i]['auth_type'] = 'c

Linux下MySQL忘记超级用户口令的解决办法

解决办法一 MySQL忘记超级用户口令的解决办法  如果MySQL正在运行,首先杀之: killall -TERM mysqld. 启动MySQL:  代码如下 复制代码 bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入MySQL了 然后就是  代码如下 复制代码 >use mysql >update user set password=password("new_pass") where user="ro