![将 Listen 3050 添加到 /etc/apache2/ports.conf 导致 mysql 崩溃](https://linux22.com/image/549494/%E5%B0%86%20Listen%203050%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20%2Fetc%2Fapache2%2Fports.conf%20%E5%AF%BC%E8%87%B4%20mysql%20%E5%B4%A9%E6%BA%83.png)
我正在尝试在本地 PC 上的虚拟机上设置暂存服务器。已安装 Ubuntu 10.4.2 LTS 64 位服务器。我在同一台机器上还有另一台虚拟机作为全职服务器运行,因此我在路由器上设置了端口转发,以将 3060 上的 ssh 和 3050 上的 http 发送到此虚拟机的内部 IP 地址 (192.68.1.13)。我正在开发 rails 3 应用程序,并使用 deprec 和 capistrano 来自动执行安装和部署。
作为第一步,我让进程通过 prt 3060 运行 ssh,但我将 apache 留在端口 80 上。当我将浏览器指向 192.168.1.13 时,它运行良好。然后,我将“Listen 3050”行添加到我的 /etc/apache2/ports.conf 文件中:
Listen 80
Listen 3050
<IfModule mod_ssl.c>
Listen 443
</IfModule>
重启虚拟机后,尝试重新连接浏览器后,网页只显示 rails 错误消息。检查 production.log 显示以下错误:
Mysql2::Error(无法通过套接字‘/var/run/mysqld/mysqld.sock’连接到本地 MySQL 服务器(2)):
[这里][1] 的一些好的提示帮助我意识到 mysql 服务器没有运行。
然后我跑了:
sudo mysqld-详细
它向我显示有一个未知的选项“skip-bdb”导致mysql崩溃。
检查 my.conf 发现该选项已在此处设置。我将其注释掉,然后就可以成功启动 mysqld。rails 应用程序也恢复正常运行。
有人能帮我找出为什么在 /etc/apache2/ports.conf 中添加一行会导致 mysql 因此选项而出错吗?此外,使用 deprec,您有机会在本地设置 apache-vhost 文件并在部署时上传它。如果我在那里添加了 *:3050,它还会阻止 mysql 在自动部署期间启动,从而导致整个安装崩溃。我猜这些问题是相关的。
谢谢,乔恩
答案1
Apache 问题和 MySQL 问题没有直接关系。skip-bdb
文件中的 可能是输入错误skip-ndb
,而 是一个有效的配置选项。
在某个时候,该my.cnf
文件被错误配置修改了(您的自动部署是否使用无效设置覆盖了此文件?这也可以解释为什么您的部署失败),但是直到您为 Apache 更改重新启动服务时才出现问题,这使得问题看起来是相关的。
找到错误设置的来源并进行修复。