更改密码

时间:2015-10-27 17:10:14

标签: mysql database-administration

我已经使用EditLine包装器安装了Mysql Ver 14.14 Distrib 5.7.9 for Linux(x86_64) CentOS Linux版本7.1.1503

我使用此命令更改了root密码:

alter user 'root'@'localhost' identified by 'XXXXXXX';  
flush privileges;

重新登录后

[root@server ~]# mysql -u root -p
Enter password: 
  

ERROR 1524(HY000):插件   '* A6074285732753D325C55AD74E7517CF442C1A81'未加载

3 个答案:

答案 0 :(得分:17)

自早期版本的mySQL(我正在使用5.7.10)以来,有两件事发生了变化:

  1. systemd现在用来管理mySQL而不是mysqld_safe(这就是我收到-bash: mysqld_safe: command not found错误的原因 - 它没有安装)

  2. user表结构已更改。

  3. 因此,要重置root密码,您仍然可以使用--skip-grant-tables选项启动mySQL并更新user表,但是如何更改。

    1. Stop mysql:
    systemctl stop mysqld
    
    2. Set the mySQL environment option 
    systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    
    3. Start mysql usig the options you just set
    systemctl start mysqld
    
    4. Login as root
    mysql -u root
    
    5. Update the root user password with these mysql commands
    mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
        -> WHERE User = 'root' AND Host = 'localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    
    6. Stop mysql
    systemctl stop mysqld
    
    7. Unset the mySQL envitroment option so it starts normally next time
    systemctl unset-environment MYSQLD_OPTS
    
    8. Start mysql normally:
    systemctl start mysqld
    
    Try to login using your new password:
    7. mysql -u root -p
    

    <强>参考

    正如http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html所说,

      

    注意

         

    从MySQL 5.7.6开始,使用RPM进行MySQL安装   分发,服务器启动和关闭由systemd on管理   几个Linux平台。在这些平台上,mysqld_safe不再存在   安装,因为它是不必要的。有关更多信息,请参阅部分   2.5.10,“使用systemd管理MySQL服务器”。

    这会将您带到http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html,它会在页面底部提到systemctl set-environment MYSQLD_OPTS=

    密码重置命令位于http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

    的底部

答案 1 :(得分:1)

更改任何用户时,尤其是root用户,应该在mysql用户表上使用update。

您应该按照以下步骤重置它:

How to reset the root password for mysql:
Stop mysql:
1. service mysql stop

Run mysql with skip grants to be able to login without any password
2. mysqld_safe --skip-grant-tables &

Login as root
3. mysql -u root

4. mysql commands:
mysql> use mysql;
mysql> update user set password=PASSWORD("YourPWHere") where User='root';
mysql> flush privileges;
mysql> quit

Stop mysql
5. service mysql stop

Start mysql normally:
6. service mysql start

Try to login using your new password:
7. mysql -u root -p

更新

显然此方法不适用于5.7,请改为HereHere

答案 2 :(得分:0)

使用以下步骤重置密码。

e.consume()

重置MySql服务器root密码。

$ sudo systemctl start mysqld

输出类似 - :

$sudo grep 'temporary password' /var/log/mysqld.log

在重置mysql_secure_installation过程中使用上述密码。

     10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa

您已成功重置MySql Server的root密码。 使用以下命令检查mysql服务器连接与否。

   $ sudo mysql_secure_installation
       Securing the MySQL server deployment.

       Enter password for user root: 

请参阅我的文章:Install Latest MySQL 5.7 on RHEL/Centos 7