2014-03-04 43 views
0

这个有点困惑。更新5.6的MySQL密码?

刚想从5.5升级到MySQL的5.6

有一个警告,许多数据库使用旧passords。

下面的用户使用前4.1风格的MySQL密码:

我们建议您更新所有账​​户中的较长的MySQL 密码哈希值在执行此升级之前。如果不这样做 可能会破坏数据库访问账户或使用 之前4.1版式MySQL密码的应用程序。

我不是100%确定我需要做什么,如果有的话。

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

我试图做一个谷歌搜索,没有发现任何有用的东西。

cPanel上有一个选项可以使用4.1版之前的密码,但是没有启用,所以不知道为什么现在应该标记出来,就像我期望的那样,如果我使用的是旧密码(无论它们是什么) 。无论如何,这个选项随5.6而消失。

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

谢谢。从这个链接

回答

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

+0

但这不会改变任何其他帐户肯定? 我没有在cpanel中使用老式的前4.1版,因为该选项没有被选中,所以很困惑。 – Ian

+0

你应该使用这些查询。它会工作更新mysql.user SET Password = PASSWORD('MyNewPass')WHERE User ='root'; FLUSH PRIVILEGES; –

0

上执行下面的语句检查DB-

SELECT USER,PASSWORD FROM mysql.user LIMIT 1; 

如果您收到密码长度小于41假设大约有16个,这意味着你使用旧的密码格式,你需要将其更改为长度更长且更安全的新格式。

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

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

注:在此之前,你需要保持特权表备份。如果打开,还需要在配置文件中注释old_password选项。