Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;过早结束数据”;PHP错误_Php_Mysql_Apache_Wamp_Wampserver - Fatal编程技术网

&引用;过早结束数据”;PHP错误

&引用;过早结束数据”;PHP错误,php,mysql,apache,wamp,wampserver,Php,Mysql,Apache,Wamp,Wampserver,我刚刚开始在PHP项目中使用WAMP,下面的错误与这行代码有关: $link=mysql_connect("localhost","myuser","mypas"); 我读到我必须用我的旧密码重新设置密码,但在重新启动所有服务后仍然无法工作。我正在使用PHP5.3.4和MySQL 5.1.53。有什么帮助吗?谢谢 Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireproto

我刚刚开始在PHP项目中使用WAMP,下面的错误与这行代码有关:

$link=mysql_connect("localhost","myuser","mypas");
我读到我必须用我的旧密码重新设置密码,但在重新启动所有服务后仍然无法工作。我正在使用PHP5.3.4和MySQL 5.1.53。有什么帮助吗?谢谢

Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:554) in C:\wamp\www\CDE\includes\baseDatos.php on line 5 
Call Stack 
1 0.0002 667312 {main}( ) ..\index.php:0 
2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 
3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 
4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 

( ! ) Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in C:\wamp\www\CDE\includes\baseDatos.php on line 5 
Call Stack 
1 0.0002 667312 {main}( ) ..\index.php:0 
2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 
3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 
4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 

( ! ) Warning: mysql_connect() [function.mysql-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 in C:\wamp\www\CDE\includes\baseDatos.php on line 5 
Call Stack 
1 0.0002 667312 {main}( ) ..\index.php:0 
2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 
3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 
4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 

我遇到了同样的问题,并使用如下更新查询修复了它:

UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user';
不知道为什么,但设置密码无效

为了确定问题所在,我认为您应该在mysql数据库上执行以下查询:

SELECT
`user`.`Password`
FROM
`user`
WHERE
`user`.`User` = 'youruser' AND
`user`.`Host` = 'yourhost'
如果密码不是以*开头,那么问题是您仍然拥有旧的密码

编辑u这里有一个php函数,用于为MYSQL创建有效密码(取自):

然后,您可以手动设置密码:

//newpwd is the passowr dgenerated in php
UPDATE mysql.user SET Password = 'newpwd' WHERE Host = 'some_host' AND User = 'some_user';
FLUSH PRIVILEGES;

连接到localhost表明您可能没有网络问题

列出2种可能的原因/补救措施

使用PHP5.3时会出现此消息。。。使用打算与PHP5.2一起使用的MySQL数据库。。。我注意到当我换了另一个 统一服务器的版本

如果您无法访问数据库,并且主要使用此远程连接进行开发(如我),则解决方案是使用两个PHP版本进行配置(当前最新的统一服务器使用PHP 5.2…似乎是5.6b-Nano,使用PHP 5.2.13)


出现上述问题的原因是PHP和MySQL之间的版本不兼容。大多数情况下,它可能发生在数据库的远程访问期间

请检查您的PHP和MySQL版本

我的版本是PHP-5.3.6(本地机器)和MySQL 5.1.56(Live DB)

我的MySQL被放置在live域中,我将PHP文件保存在本地计算机中。我面临同样的密码rest问题


然后我用旧版本替换我的XAMPP,它将我的PHP版本更改为5.3.0。现在上述问题已经解决,我可以从本地访问live db。

如果使用MySQL 4.1+试试这个

在MySQL命令行中

mysql>设置旧密码=0
mysql>为'user'@'some.host.domain'设置密码=密码('new_pass')

mysql>设置旧密码=1

请将
baseDatos.php
的代码粘贴到`上,并链接到此处。也许也可以签出。baseDatos.php只是一个包含以下信息的“包含文件”:。如果有帮助的话,从mysql.user中选择密码,我会得到一个16字节的密码,而不是原来的“mypas”。过早结束数据也被称为过早完成。(对不起,我忍不住)我这么做了,我的密码是038872231aa1b123。如何更改为新的加密?谢谢你确定你的ini文件中没有类似于旧密码的东西吗?你可以用php生成一个有效的密码,并用更新查询设置它。然后,我更新了我的答案,以演示如何操作。希望它能帮助我使用远程服务器,通过使用上面的方法解决这类问题需要根访问(SSH)的服务器。大多数客户没有提供这些安全的细节。否则,这是一个非常简单快捷的解决重置密码问题的方法。我尝试过,但我没有“my.cnf”文件。只有一个“my.ini”,没有任何“旧密码”行。
//newpwd is the passowr dgenerated in php
UPDATE mysql.user SET Password = 'newpwd' WHERE Host = 'some_host' AND User = 'some_user';
FLUSH PRIVILEGES;