迁移论坛 出现了一个2天没解决的问题。

迁移论坛 出现了一个2天没解决的问题。

By cvmax at 2015-08-01
0人收藏 • 2524人看过

就是连接数据库时会提示

Could not connect: mysqlnd cannot connect to MySQL 4.1+ using the old 
insecure authentication. Please use an administration tool to reset your
 password with the command SET PASSWORD = 
PASSWORD('your_existing_password'). This will store a new, and more 
secure, hash value in mysql.user. If this user is used in other scripts 
executed by PHP 5.2 or earlier you might need to remove the 
old-passwords flag from your my.cnf file


我已经按照网上的各种教程做了,然后 mysql 里面的 mysql.user 里面的密码长度也是41位了。还是报错。。。

10 个回复 | 最后更新于 2016-03-20
lincanbin
2015-08-01
#1

你是导出SQL文件然后再导入吗?

还是直接复制不同版本的MySQL的数据库文件?

cvmax
2015-08-01
#2

回复#1 @lincanbin :

就是从之前的数据库导出,然后再导入到新的数据库。

以前是 windows,现在是 centos,php和 mysql版本都比较高。

我准备下载新程序放上去安装试一下

lincanbin
2015-08-01
#3

回复#2 @cvmax :

那照提示说的执行:

SET PASSWORD = PASSWORD('your_existing_password')

呢?

cvmax
2015-08-01
#4

回复#3 @lincanbin :

按提示做了。他这个就是把 mysql.user 里面的密码重新加密,从16位提高到41位,我现在已经是41位了。但还是报错。

lincanbin
2015-08-01
#5

回复#4 @cvmax :

重启mysqld服务了吗?

为什么你的mysqld的密码会使用旧版本的加密方式?你不是全新编译安装的MySQL?

cvmax
2015-08-01
#6

回复#5 @lincanbin :

全新安装的 lamp 环境。不过我每次重启 mysql,/etc/init.d/mysqld restart 会提示不存在。/etc/init.d/mysql restart就行

lincanbin
2015-08-01
#7

回复#4 @cvmax :

你用SSH连接服务器,然后执行:

mysql -u你的用户名 -p

按提示输入密码,然后登陆进去后,执行:

SET old_passwords=0;
SET password=PASSWORD('当前密码');

照这个流程再来一次?

cvmax
2015-08-01
#8

回复#7 @lincanbin :

又来了一次,最后 flush privileges,然后 service mysql restart.

然后刷新页面 还是继续报错。。


cvmax
2015-08-01
#9

解决了。完全不是提示的这个问题。

不知道为什么报这个错误。把我绕远了。

新用户new
2016-03-20
#10

回复#9 @cvmax :

可以


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录