在这个问题上有点困惑。
即将将MySQL从5.5升级到5.6
有一个警告说,许多数据库使用旧的密码。
以下用户使用预4.1风格的MySQL密码: 在执行此升级之前,建议您将所有帐户更新为更长的MySQL密码散列。如果不这样做,可能会中断对使用前4.1风格MySQL密码的帐户或应用程序的数据库访问。
我不是百分之百确定我需要做什么,如果有任何事情。
许多帐户甚至不是数据库。
我试图做谷歌搜索,但没有发现任何有用的东西。
cPanel上有一个使用pre 4.1密码的选项,但是没有启用它,所以不确定为什么现在就应该标记它,正如我所预期的那样,如果我使用旧密码(不管它们可能是什么)的话。无论如何,这一选择与5.6没有关系。
有人能协助或指点。
谢谢。
发布于 2014-03-04 12:27:49
在db上执行以下语句-
SELECT USER,PASSWORD FROM mysql.user LIMIT 1;如果您的密码长度小于41,假设大约为16,这意味着您正在使用旧的密码格式,并且您需要将其更改为新格式,这是41长度和更安全的格式。
您可以通过以下命令更改密码格式-
set password for 'user'@'ip' = password ('new password');注意:在此之前,您需要保留特权表备份。如果配置文件是打开的,还需要在配置文件中注释old_password选项。
发布于 2014-03-04 12:21:36
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
https://stackoverflow.com/questions/22171542
复制相似问题