【问题标题】:MySQL connection goneMySQL连接消失了
【发布时间】:2015-06-04 15:21:04
【问题描述】:

我正在为基于windows azurephp 应用程序使用clearDB 数据库。我在mysql 连接上遇到间歇性错误。目前我们有近 2000 名在线客户。我们有来自数据库的 30 个连接

如何扩展网站并克服这种情况?

我大部分时间都在处理关闭连接。现在我已经通过以下方式防止了服务器错误:

try {
   $this->_conn = $this->dbh = new PDO('mysql:host=' . DB_SERVER . ';dbname='. DB_NAME, DB_USER, DB_PASS);
   $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
   die("Couldn't connect to database. Please try again!");
}

因此,如果没有任何连接,它会显示相应的消息。但是,这对于面向客户的网站是不可行的。我该如何解决这个问题?

编辑

如何分析这些数据:

Array
(
[0] => Array
    (
        [Variable_name] => Connections
        [Value] => 505369
    )

[1] => Array
    (
        [Variable_name] => Threads_cached
        [Value] => 54
    )

[2] => Array
    (
        [Variable_name] => Threads_connected
        [Value] => 65
    )

[3] => Array
    (
        [Variable_name] => Threads_created
        [Value] => 1038
    )

[4] => Array
    (
        [Variable_name] => Threads_running
        [Value] => 4
    )
)

我得到以上结果后:SHOW STATUS WHERE variable_name LIKE 'Threads_%' OR variable_name = 'Connections'

【问题讨论】:

  • 我建议把它交给 ServerFault 或类似的。听起来您需要对数据库设置/通用基础架构进行排序,而不是使用所提供的内容以编程方式完成任何事情..
  • 典型的 MySQL 性能故障排除包括打开 slow_query_log、运行 mysqltuner.pl 等调优分析器、检查 DB 规范化等。到目前为止,您做了什么?
  • @Kkinsey:我不知道你提到的那些工具。
  • slow_query_log 是 MySQL 服务器的一个特性;在“my.cnf”中启用它,然后阅读日志文件以查看哪些查询需要改进。参见,例如:dev.mysql.com/doc/refman/5.5/en/slow-query-log.html
  • 如果您在使用 ClearDB 时发现问题持续存在,那么您应该考虑迁移到在 Azure VM 上运行的自我管理 MySQL 实例。

标签: php mysql azure cleardb


【解决方案1】:

根据我对这个问题的理解,设计一个可扩展的数据库并不容易。考虑以下建议:

【讨论】:

    猜你喜欢
    • 2011-04-09
    • 2021-12-16
    • 1970-01-01
    • 2020-09-28
    • 2014-12-24
    • 2013-12-11
    • 2013-08-28
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多