Heim > Datenbank > MySQL-Tutorial > CentOS下重置MySQL的root密码的教程_MySQL

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

PHP中文网
Freigeben: 2016-05-27 13:45:50
Original
1035 Leute haben es durchsucht

本人在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
Nach dem Login kopieren


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


#usermod -g root tommy
Nach dem Login kopieren


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

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


## Allow root to run any commands anywhere
root ALL=(ALL)  ALL
tommy ALL=(ALL)  ALL
Nach dem Login kopieren


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

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


tommy:x:500:500:tommy:/home/tommy:/bin/bash
Nach dem Login kopieren


修改后如下


tommy:x:0:500:tommy:/home/tommy:/bin/bash
Nach dem Login kopieren


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


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


/etc/init.d/mysqld status
mysqld dead but subsys locked
Nach dem Login kopieren


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


#/etc/init.d/mysql start
Nach dem Login kopieren


启动成功后查看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
Nach dem Login kopieren


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


/etc/init.d/mysql stop
Nach dem Login kopieren


以安全方式启动mysql:


#/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
Nach dem Login kopieren


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


#/usr/bin/mysql -u root mysql
Nach dem Login kopieren


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

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


mysql> update user set password = Password('root') where User = 'root';
Nach dem Login kopieren


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


mysql> flush privileges;
Nach dem Login kopieren
Nach dem Login kopieren


再执行exit退出:


mysql> exit;
Nach dem Login kopieren


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


#mysql -u root -p
Nach dem Login kopieren


按提示输入密码:


root
Nach dem Login kopieren


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


mysql> show databases;
Nach dem Login kopieren
Nach dem Login kopieren



ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
Nach dem Login kopieren


解决办法:


mysql> SET PASSWORD=PASSWORD('root');
Nach dem Login kopieren



Query OK, 0 rows affected (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren



mysql> flush privileges;
Nach dem Login kopieren
Nach dem Login kopieren



Query OK, 0 rows affected (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren



mysql> show databases;
Nach dem Login kopieren
Nach dem Login kopieren



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


PS:如果在使用mysqladmin的话:


# mysqladmin -u root -p password "test123"
Nach dem Login kopieren



Enter password: 【输入原来的密码】
Nach dem Login kopieren

以上就是CentOS下重置MySQL的root密码的教程_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage