mysql重置root密码官方文档 (5.7 version)

注意:5.7版本  其他的见各个版本文档

How to Reset the Root Password
If you have never assigned a root password for MySQL, the server does not require a password at
all for connecting as root . However, this is insecure. For instructions on assigning a password, see
Section 2.10.4, “Securing the Initial MySQL Account” .
If you know the root password and want to change it, see Section 13.7.1.1, “ALTER USER
Statement” , and Section 13.7.1.7, “SET PASSWORD Statement” .
If you assigned a root password previously but have forgotten it, you can assign a new password. The
following sections provide instructions for Windows and Unix and Unix-like systems, as well as generic
instructions that apply to any system.
Resetting the Root Password: Windows Systems
Resetting the Root Password: Unix and Unix-Like Systems
On Unix, use the following procedure to reset the password for the MySQL 'root'@'localhost'
account. To change the password for a root account with a different host name part, modify the
instructions to use that host name.
The instructions assume that you start the MySQL server from the Unix login account that you normally
use for running it. For example, if you run the server using the mysql login account, you should log
in as mysql before using the instructions. Alternatively, you can log in as root , but in this case you
must start mysqld with the --user=mysql option. If you start the server as root without using --
user=mysql , the server may create root -owned files in the data directory, such as log files, and
these may cause permission-related problems for future server startups. If that happens, you must
either change the ownership of the files to mysql or remove them.
1. Log on to your system as the Unix user that the MySQL server runs as (for example, mysql ).
2. Stop the MySQL server if it is running. Locate the .pid file that contains the server's process ID.
The exact location and name of this file depend on your distribution, host name, and configuration.
Common locations are /var/lib/mysql/ , /var/run/mysqld/ , and /usr/local/mysql/
data/ . Generally, the file name has an extension of .pid and begins with either mysqld or your
system's host name.
Stop the MySQL server by sending a normal kill (not kill -9 ) to the mysqld process. Use the
actual path name of the .pid file in the following command:
shell> kill `cat /mysql-data-directory/host_name.pid`
(注:这步的作用是杀掉mysql,执行完该命令后一定要确定mysql被杀掉了;停止mysqld是重置密码的前提;如果杀不掉那么请思考另外的办法,确保在mysql未运行的情况执行后续命令,例如开机后不自动启动mysql)
( 注: host_name.pid 是记录mysql运行进程号的文件,也可以不通过该文件,而是通过ps获取mysql正在运行的进程号
Use backticks (not forward quotation marks) with the cat command. These cause the output of
cat to be substituted into the kill command.
3. Create a text file containing the password-assignment statement on a single line. Replace the
password with the password that you want to use.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
(注:这条语句是修改密码的语句,需要协助text文本中,如果这条语句在后序操作中执行不成功,或执行后密码没有被重置,则尝试执行另外一条语句(后面会提到))
4. Save the file. This example assumes that you name the file /home/me/mysql-init . The file
contains the password, so do not save it where it can be read by other users. If you are not logged
in as mysql (the user the server runs as), make sure that the file has permissions that permit
mysql to read it.
(注:意思是确保上面的文件的可读性)
5. Start the MySQL server with the init_file system variable set to name the file:
shell> mysqld --init-file=/home/me/mysql-init &
(注:执行该语句的时候会提示你,是start?stop?restart?。。。
    这时候需要补全语句,例如:补全后的效果
    /etc/rc.d/init.d/mysqld start --init-file=/home/me/mysql-init  
     & 根据需要选择保留与否;补充的一般是start 因为我们要启动mysql
The server executes the contents of the file named by the init_file system variable at startup,
changing the 'root'@'localhost' account password.
Other options may be necessary as well, depending on how you normally start your server. For
example, --defaults-file may be needed before the init_file argument.
(注:这步是有可能执行不成功的,可能是文本里面的sql语句有语病(我复制的时候就少了个字母),也有可能是其他原因。如果执行成功了会提示: successfully;否则要么报错,要么没反应,这说明没有执行成功。这步成功了密码也就重置成功了,否则不成功
6. After the server has started successfully, delete /home/me/mysql-init .
You should now be able to connect to the MySQL server as root using the new password. Stop the
server and restart it normally.
If the ALTER USER statement fails to reset the password, try repeating the procedure using the
following statements to modify the user table directly:
(注:如果上面的步骤操作之后,密码不对。那么用以下sql替换前面的sql语句,重新安照前面的程序来走一边(我在实际的操作过程中,就遇到了这样的情况,并且这样做,然后成功重置了密码))
(这就是前面提到过的:尝试执行另外一条语句)
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值