如何从 ubuntu 16 服务器上的 drupal 7 站点诊断(和修复)持久性 mysql 错误?
How to diagnose (and repair) persistent mysql errors from a drupal 7 site on an ubuntu 16 server?
我正在将 Drupal 7x 站点部署到 Digital Ocean Ubuntu 16.04 服务器以进行测试和演示。我将服务器 php 版本从 php7 切换到 PHP 5.6,但除此之外使用默认版本 Mysql 和 Apache2。我在安装网站和网站功能时没有遇到任何问题;但是,我经常遇到与数据库相关的错误,特别是以下错误:
PDOException: SQLSTATE[HY000] [2002] Connection refused in lock_may_be_available() (line 167 of /var/www/html/phisigmarho.org/includes/lock.inc).
我通常会遇到该错误,但当我执行任何数据库或进程密集型操作(通过 UI 更新模块等)时,我也会遇到 "the website experienced an error" 错误或 "mysql server has gone away"。我是相对较新的服务器管理人员,所以我不确定可能出了什么问题,或者我应该查看哪些日志以查找问题的线索。目前,从终端重新启动 MySQL 让我可以继续设置网站,但我不能让任何人像现在这样使用网站。
那么,我如何弄清楚为什么 MySQL 总是消失?我很困惑,因为服务器与我的开发机器(ubunutu 16 桌面 运行 php5.6)的配置非常相似,而且我没有任何类似的事情发生。我在哪里寻找有意义的日志来帮助我诊断或解决这个问题。那么,想法?
以下是我在这种情况下会尝试的一些事情。
安装 Drush(如果尚未安装)。
然后查看以下命令得到的结果:
drush status
- 检查站点配置是否正确,包括数据库连接
drush sqlc
- 这将使用 settings.php 中指定的连接详细信息让您登录到 MySQL 命令行。确保此连接成功打开是值得的
drush cc all
- 迁移到新环境时,清除站点的缓存始终是个好主意。
如果还是不行,我会截断 Drupal 数据库中的所有 cache_* 表。我已经看到与上述类似的错误,正常的缓存清除不足以解决它。
确保 Drupal 看门狗已启用。 drush en dblog
。然后您可以使用 Drush 查看看门狗日志条目,例如drush ws
检查 PHP 日志。您可能需要联系 Digital Ocean 以获取这些位置和访问权限。
我正在将 Drupal 7x 站点部署到 Digital Ocean Ubuntu 16.04 服务器以进行测试和演示。我将服务器 php 版本从 php7 切换到 PHP 5.6,但除此之外使用默认版本 Mysql 和 Apache2。我在安装网站和网站功能时没有遇到任何问题;但是,我经常遇到与数据库相关的错误,特别是以下错误:
PDOException: SQLSTATE[HY000] [2002] Connection refused in lock_may_be_available() (line 167 of /var/www/html/phisigmarho.org/includes/lock.inc).
我通常会遇到该错误,但当我执行任何数据库或进程密集型操作(通过 UI 更新模块等)时,我也会遇到 "the website experienced an error" 错误或 "mysql server has gone away"。我是相对较新的服务器管理人员,所以我不确定可能出了什么问题,或者我应该查看哪些日志以查找问题的线索。目前,从终端重新启动 MySQL 让我可以继续设置网站,但我不能让任何人像现在这样使用网站。
那么,我如何弄清楚为什么 MySQL 总是消失?我很困惑,因为服务器与我的开发机器(ubunutu 16 桌面 运行 php5.6)的配置非常相似,而且我没有任何类似的事情发生。我在哪里寻找有意义的日志来帮助我诊断或解决这个问题。那么,想法?
以下是我在这种情况下会尝试的一些事情。
安装 Drush(如果尚未安装)。 然后查看以下命令得到的结果:
drush status
- 检查站点配置是否正确,包括数据库连接drush sqlc
- 这将使用 settings.php 中指定的连接详细信息让您登录到 MySQL 命令行。确保此连接成功打开是值得的drush cc all
- 迁移到新环境时,清除站点的缓存始终是个好主意。
如果还是不行,我会截断 Drupal 数据库中的所有 cache_* 表。我已经看到与上述类似的错误,正常的缓存清除不足以解决它。
确保 Drupal 看门狗已启用。
drush en dblog
。然后您可以使用 Drush 查看看门狗日志条目,例如drush ws
检查 PHP 日志。您可能需要联系 Digital Ocean 以获取这些位置和访问权限。