CentOS下重置MySQL的root密码的教程

作者:海涛zht666 时间:2024-01-25 19:20:40 

本人在CentOS6.4上安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码,似乎有个初始随机密码,但是不记得了,太麻烦,直接重置root密码。
首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。

PS:赋予用于root权限
方法一: 修改 /etc/sudoers 文件,找到%wheel一行,把前面的注释(#)去掉


## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

然后修改用户,使其属于root组(wheel),命令如下:


#usermod -g root tommy

修改完毕,现在可以用tommy帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。

方法二: 修改 /etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:


## Allow root to run any commands anywhere
root ALL=(ALL)  ALL
tommy ALL=(ALL)  ALL

修改完毕,现在可以用tommy帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。

方法三: 修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:


tommy:x:500:500:tommy:/home/tommy:/bin/bash

修改后如下


tommy:x:0:500:tommy:/home/tommy:/bin/bash

保存,用tommy账户登录后,直接获取的就是root帐号的权限。


root下类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:


/etc/init.d/mysqld status
mysqld dead but subsys locked

这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld stop,如果你不幸先用了pkill,那么就start一下再stop咯。
使用rpm包安装完mysql后,按照一下步骤重置root密码:
启动mysql:


#/etc/init.d/mysql start

启动成功后查看mysql进程信息,获取mysqld_safe的安装目录(非常关键):


#ps -ef | grep -i mysql
root  3466  1 0 01:45 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/BSC.TEST.pid
mysql  3569 3466 16 01:45 pts/1 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/BSC.TEST.err --pid-file=/var/lib/mysql/BSC.TEST.pid
root  3597 3105 0 01:45 pts/1 00:00:00 grep -i mysql

可以看到mysqld_safe的安装位置(上面标蓝色部分):/usr/bin/
接着执行一下命令停止mysql:


/etc/init.d/mysql stop

以安全方式启动mysql:


#/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &

稍等5秒钟,然后执行以下语句:


#/usr/bin/mysql -u root mysql

注意:mysql与mysql_safe目录一样,都是:/usr/bin/下,这个是通过“ps -ef | grep -i mysql”命令得到的。

出现“mysql>”提示符后输入:


mysql> update user set password = Password('root') where User = 'root';

回车后执行(刷新MySQL系统权限相关的表):


mysql> flush privileges;

再执行exit退出:


mysql> exit;

退出后,使用以下命令登陆mysql,试试是否成功:


#mysql -u root -p

按提示输入密码:


root

但是执行查看数据库命令报错:


mysql> show databases;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

解决办法:


mysql> SET PASSWORD=PASSWORD('root');

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


mysql> show databases;

+--------------------+
| Database   |
+--------------------+
| information_schema |
| mysql    |
| performance_schema |
| test    |
+--------------------+
4 rows in set (0.00 sec)

PS:如果在使用mysqladmin的话:


# mysqladmin -u root -p password "test123"

Enter password: 【输入原来的密码】

标签:MySQL,root密码
0
投稿

猜你喜欢

  • 禁止弹窗中蒙层底部页面跟随滚动的几种方法

    2024-06-05 09:12:59
  • Python 6种基本变量操作技巧总结

    2023-04-03 21:50:04
  • 分享Pycharm中一些不为人知的技巧

    2023-10-04 04:52:54
  • 如何通过Python收集MySQL MHA 部署及运行状态信息的功能

    2024-01-13 22:14:44
  • Golang JSON的进阶用法实例讲解

    2024-02-20 00:24:00
  • Python实现从PPT中导出高分辨率图片

    2023-01-03 16:29:08
  • SQL Server误区30日谈 第9天 数据库文件收缩不会影响性能

    2024-01-17 17:45:01
  • django框架之cookie/session的使用示例(小结)

    2023-06-24 08:24:42
  • socket + select 完成伪并发操作的实例

    2022-05-09 14:23:32
  • 解决pandas read_csv 读取中文列标题文件报错的问题

    2023-04-16 06:54:37
  • Mysql 命令行模式访问操作mysql数据库操作

    2024-01-14 07:43:41
  • JavaScrpt的面向对象全面解析

    2024-04-23 09:20:40
  • python爬虫之爬取百度翻译

    2022-04-03 19:30:45
  • js阻止浏览器默认行为的简单实例

    2024-04-27 15:22:55
  • css中如何使div居中(垂直水平居中)

    2007-08-13 08:17:00
  • Go高级特性探究之对象比较详解

    2024-04-26 17:26:59
  • 详解Python定时器Timer的使用及示例

    2021-01-25 23:54:34
  • Windows10下mysql 8.0.19 安装配置方法图文教程

    2024-01-21 06:33:27
  • 深入解析opencv骨架提取的算法步骤

    2023-02-10 16:09:05
  • python+matplotlib绘制简单的海豚(顶点和节点的操作)

    2023-11-14 11:10:27
  • asp之家 网络编程 m.aspxhome.com