更新5.6的MySQL密码?

时间:2014-03-04 12:08:31

标签: mysql upgrade

对此有点困惑。

即将将MySQL从5.5升级到5.6

警告说许多数据库都使用旧密码。

  

以下用户使用4.1之前的MySQL密码:

     

我们建议您将所有帐户更新为更长的MySQL   执行此升级之前的密码哈希。没有这样做   可能会破坏使用的帐户或应用程序的数据库访问权限   4.1之前的MySQL密码。

我不能100%确定我需要做什么。

许多帐户甚至都不是数据库。

我曾试图进行谷歌搜索,但没有找到任何帮助。

cPanel上有一个选项可以使用4.1之前的密码,但是没有启用,所以不知道为什么现在应该标记,正如我所料,如果我使用的是旧密码(无论它们是什么)。无论如何,这个选项都会消失5.6。

任何人都可以提供协助或指导。

感谢。

2 个答案:

答案 0 :(得分:1)

在您的数据库上执行以下语句 -

SELECT USER,PASSWORD FROM mysql.user LIMIT 1;

如果您的密码长度小于41,假设大约16,则表示您使用的是旧密码格式,并且需要将其更改为长度为41且更安全的新格式。

您可以通过以下命令更改密码格式 -

set password for 'user'@'ip' = password ('new password');

注意:在此之前,您需要保留权限表备份。如果配置文件已打开,还需要在配置文件中注释old_password选项。

答案 1 :(得分:0)

 For Windows, do this:

shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');

The last statement is unnecessary if the mysql.user table has no root account with a host value of %.

For Unix, do this:

shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');

You can also use a single statement that assigns a password to all root accounts by using UPDATE to modify the mysql.user table directly. This method works on any platform:

shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
    ->     WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
  

参考此链接: -

http://dev.mysql.com/doc/refman/5.6/en/default-privileges.html