警告:mysql_connect():读取问候包时出错
Posted
技术标签:
【中文标题】警告:mysql_connect():读取问候包时出错【英文标题】:Warning: mysql_connect(): Error while reading greeting packet 【发布时间】:2015-07-15 00:59:43 【问题描述】:<?php``
if(mysql_connect("localhost","root",""))
echo"connect";
else
echo "not connect";
?>
这是我的代码,但它没有连接。将错误作为警告
警告:mysql_connect(): MySQL server has gone away in C:..\pro1.php on line 2
。第 2 行 C:..\pro1.php 中的 PID=2296
警告:mysql_connect(): MySQL server has gone away in C:..\pro1.php on line 2 连接不上
【问题讨论】:
你必须查看一些如何连接数据库的教程,这里有一个链接,你可以得到一些帮助w3schools.com/php/php_mysql_connect.asp在谷歌搜索教程和mysql已被弃用,所以使用mysqli或pdo进行数据库连接 有趣的是,您已经标记了mysqli
,但没有使用它。嗯,这可能是更好的方法吗? ;)
【参考方案1】:
您可以尝试使用MySQLi
或PDO
及其准备好的语句以更安全。
如果您打算只使用 MySQL,请使用以下代码初始化您的数据库连接。
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link)
die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_close($link);
?>
参考见http://php.net/manual/en/function.mysql-connect.php
或者请使用 MySQLi
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
?>
参考见http://php.net/manual/en/mysqli.construct.php
如果您考虑使用 PDO,请尝试
<?php
try
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row)
print_r($row);
$dbh = null;
catch (PDOException $e)
print "Error!: " . $e->getMessage() . "<br/>";
die();
?>
参考见http://php.net/manual/en/pdo.connections.php
【讨论】:
【参考方案2】:$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_error)
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
http://php.net/manual/en/mysqli.construct.php
【讨论】:
【参考方案3】:在 php 打开标签后删除 '' 和 试试这样
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link)
die('Not connected : ' . mysql_error());
$db_selected = mysql_select_db('dbname'); //your database name
if (!$db_selected)
die ('Can\'t use foo : ' . mysql_error());
?>
【讨论】:
以上是关于警告:mysql_connect():读取问候包时出错的主要内容,如果未能解决你的问题,请参考以下文章
cakephp: 警告 (2): mysql_connect()
警告:mysql_connect():用户'root'@'localhost'的访问被拒绝(使用密码:NO)[重复]
警告:mysql_connect(): 无法通过套接字'/tmp/mysql.sock' (2) 连接到本地 MySQL 服务器
警告:mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known
警告:mysql_connect(): [2002] 没有这样的文件或目录(试图通过 unix:///tmp/mysql.sock 连接)