云计算开发者社区

用新浪微博连接

一步搞定

查看: 16716|回复: 23

[MySQL] 连接数据库出错 Lost connection to MySQL [复制链接]

Rank: 1

发表于 2013-12-18 11:12:07 |显示全部楼层
1金豆
连接数据库出错,提示信息如下。



DB error:2013;SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 111



我连接数据库的方式是PDO ,并且在我的框架里封装的。 本地测试都是正常的(使用了1,2年了),但是发布到SAE后就不正常了。

最佳答案

zhaixiaohu 查看完整内容

搞定了就好,欢迎常来论坛交流

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 11:12:08 |显示全部楼层
来看狗的微博 发表于 2013-12-18 17:01
谢谢,发现问题,并搞定了, 原因在port上,由于默认的是3306 。所以没有设置,只要设置端口号就好了。非 ...

搞定了就好,欢迎常来论坛交流

点评

疯子好好活  借个地方方便后来人:【楼主是没有设置端口】  发表于 2013-12-18 17:39:39

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 11:14:52 |显示全部楼层
多半是数据库服务器名写错了
你查一下

使用道具 举报

版主

Linux & PHP

Rank: 7Rank: 7Rank: 7

发表于 2013-12-18 11:14:59 |显示全部楼层
应该是网络问题吧,可能SAE的主机出现网络不正常了

使用道具 举报

版主

Linux & PHP

Rank: 7Rank: 7Rank: 7

发表于 2013-12-18 11:17:08 |显示全部楼层
也有可能,Server端的数据就会积压在内存中等待发送,而这个等待不是无限期的,当Server的等待时间超过net_write_timeout(默认是60秒)时,mysqldump的连接就会被断开,同时抛出错误error: 2013: Lost connection...

使用道具 举报

Rank: 1

发表于 2013-12-18 11:18:24 |显示全部楼层
zhaixiaohu 发表于 2013-12-18 11:14
多半是数据库服务器名写错了
你查一下

DB_KEY_NAME_HOST         => SAE_MYSQL_HOST_M,
DB_KEY_NAME_DBNAME          => SAE_MYSQL_DB,
DB_KEY_NAME_USER         => SAE_MYSQL_USER,
DB_KEY_NAME_PASS         => SAE_MYSQL_PASS,

我配置文件是这样定义的,数据库名应该没错吧

点评

疯子好好活  哦,后面看到楼主解决问题了,果然是端口问题。  发表于 2013-12-18 17:26:49
疯子好好活  SAE的端口不是3306,您改了吗  发表于 2013-12-18 17:25:09

使用道具 举报

Rank: 1

发表于 2013-12-18 11:19:52 |显示全部楼层
Xidorn 发表于 2013-12-18 11:17
也有可能,Server端的数据就会积压在内存中等待发送,而这个等待不是无限期的,当Server的等待时间超过net_ ...

没有超时的的现象,错误信息是在刷新页面后立马就返回出来的,而且我只是在访问一个测试表,里面总共两条数据

使用道具 举报

版主

Linux & PHP

Rank: 7Rank: 7Rank: 7

发表于 2013-12-18 11:27:28 |显示全部楼层
那这样的话就可能是我回复的第一个原因了,你稍后再试一下,看看!

使用道具 举报

Rank: 1

发表于 2013-12-18 11:33:31 |显示全部楼层
我百度了一下这个问题 有回答如下

1、修改mysql配置文件

vi /etc/my.cnf

[mysqld]段加skip-name-resolve

在这个之前要把mysql的远程访问权限打开,或者再加skip-grant-table(不推荐)

使用道具 举报

Rank: 1

发表于 2013-12-18 12:27:57 |显示全部楼层
Xidorn 发表于 2013-12-18 11:27
那这样的话就可能是我回复的第一个原因了,你稍后再试一下,看看!

目前还是老样子

使用道具 举报

Rank: 7Rank: 7Rank: 7

发表于 2013-12-18 12:47:56 |显示全部楼层
写个简单测试页测试一下

使用道具 举报

版主

Linux & PHP

Rank: 7Rank: 7Rank: 7

发表于 2013-12-18 12:50:14 |显示全部楼层
来看狗的微博 发表于 2013-12-18 11:33
我百度了一下这个问题 有回答如下

1、修改mysql配置文件

这些貌似我们没权限,应该SAE工作人员搞得!

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 13:14:50 |显示全部楼层
我去测试测试

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 13:21:21 |显示全部楼层
正常使用mysql服务应该没问题

你对照这里的代码,修改下你的代码看看

http://lazy.changes.com.cn/html/309.html

使用道具 举报

Rank: 1

发表于 2013-12-18 13:53:08 |显示全部楼层
zhaixiaohu 发表于 2013-12-18 13:21
正常使用mysql服务应该没问题

你对照这里的代码,修改下你的代码看看

我会去试一下。
主要是我想移植我的项目到SAE上,原先的项目用来自己开发的php框架,用了多年。数据库用的是PDO,并且自己进行了封装。 如果改用SAE访问数据库的API,那还需要在我的框架里进行扩展和修改,有些费事。。。

我记得我昨天看了文档 说是 SAE 支持 myql mysqli pdo的

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 13:56:23 |显示全部楼层
SAE的PHP环境提供了标准的MYSQL,MYSQLI和PDO模块(基于libMySQL),您可以直接使用这三个模块来操作您的数据库, 您可以使用预定义常量来连接数据库,我们不排除未来可能调整数据库端口,使用预定义常量能够避免这样的问题。当然SAE也提供了SaeMysql类,我们也推荐您使用这个类来操作MySQL资源。

推荐使用saemysql ,这样今后会稳定一些,不会出现因为调整端口造成问题。

使用道具 举报

Rank: 1

发表于 2013-12-18 14:20:42 |显示全部楼层
zhaixiaohu 发表于 2013-12-18 13:56
SAE的PHP环境提供了标准的MYSQL,MYSQLI和PDO模块(基于libMySQL),您可以直接使用这三个模块来操作您的数据 ...

根据你发的例子我都测试了(mysql_connect和saemysql),都通过了。
我的项目是使用PDO模块的,文档说也支持的。 但是没有而是通过。
我使用的用户名密码也是使用 sae的常量

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 14:30:01 |显示全部楼层
我去研究下这个问题, 有问题我会反馈给研发。有了进展我来通知您哈。

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2013-12-18 14:30:03 |显示全部楼层
我去研究下这个问题, 有问题我会反馈给研发。有了进展我来通知您哈。

使用道具 举报

Rank: 1

发表于 2013-12-18 14:49:40 |显示全部楼层
通过测试发现 文档中虽然说 MYSQL,MYSQLI和PDO模块 都支持。

其实PDO连接数据库就会出错。


        try {

            return new PDO ( "mysql:host=".SAE_MYSQL_HOST_M.";dbname=".SAE_MYSQL_DB, SAE_MYSQL_USER, SAE_MYSQL_DB  ,array());

        } catch ( Exception $e ) {

            echo '数据库连接失败,详情: ' . $e->getMessage ()  ;

            exit ();

        }

出错信息 还是:

SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 111

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|云计算开发者社区 ( 京ICP证000007-137 )

GMT+8, 2018-1-21 12:16 , Processed in 0.224852 second(s), Total 14, Slave 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部