日期:2014-05-17  浏览次数:20477 次

php连接不上mysql,但Nvicat可以。
$db=mysql_connect("124.172.118.122", "dbcms_f","123456");
if (!$db)
{
die('<br>连接错误: ' . mysql_error());
}
$sqlname="dbcmxs";//数据库的名
mysql_select_db($sqlname,$db)or die ("链接错误!! ");//连接到数据库
session_start();
mysql_query("SET NAMES 'utf8'",$db);//定义数据交互的语言格式

错误信息是

Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:553) in D:\workspace\php\fww\phpcms\inc\conn.php on line 2

Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in D:\workspace\php\fww\phpcms\inc\conn.php on line 2

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 D:\workspace\php\fww\phpcms\inc\conn.php on line 2

连接错误: 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的信息
服务器版本: 5.5.20
Protocol version: 10
服务器: Localhost via UNIX socket
用户: *****)**@localhost
MySQL 字符集: cp1252 West European (latin1) 
 
创建一个新的数据库: 
无权限


MySQL PHP 数据库 服务器

------解决方案--------------------
警告:MYSQL_CONNECT()[function.mysql连接]:D中的数据过早结束(mysqlnd_wireprotocol.c:553):\工作区\ PHP\ INC \ conn.php\ FWW\ PHPCMS上线2

警告:MYSQL_CONNECT()[连接]:OK包1个字节少于预期在D:\工作区\ PHP\ FWW\ PHPCMS\ INC \ conn.php2号线

警告:MYSQL_CONNECT()[function.mysql连接的mysqlnd无法连接到MySQL4.1+使用旧的不安全的认证。请使用管理工具来重置您的密码命令SET PASSWORD =的密码('your_existing_password')。这将存储在mysql.user一个新的,更安全,哈希值。如果此用户使用其他脚本执行PHP5.2或更早版本,你可能需要删除旧密码标志2号线从my.cnf文件在D:\ workspace下,\ php\ FWW的\ PHPCMS\ INC\ conn.php

连接错误的mysqlnd无法连接到MySQL4.1+使用旧的不安全的认证。请使用管理工具来重置您的密码命令SET PASSWORD =的密码('your_existing_password')。这将存储在mysql.user一个新的,更安全,哈希值。如果此用户执行在其他脚本中使用PHP5.2或更早版本,你可能需要从你的my.cnf文件删除旧密码标志

是你的 php 版本太低,还是 mysql 版本太高
------解决方案--