无法通过php使用Bitnami灯堆栈连接到mysql
Posted
技术标签:
【中文标题】无法通过php使用Bitnami灯堆栈连接到mysql【英文标题】:Can't connect to mysql using Bitnami lamp stack through php 【发布时间】:2010-12-14 07:30:00 【问题描述】:好的,这将是一个很长的问题。
我正在尝试在我的大学帐户上启动并运行一些东西。我们有一个 public_html 文件夹,我们可以将其用作 Web 空间来托管我们想要的任何内容。
我已经在 public_html 文件夹中安装了 Bitnami 灯堆栈(可能不是最好的主意,安全方面,但我只会测试这个应用程序几天并将它拉下来,所以我真的不关心这么久,我可以让它快速启动并运行)并且我想要托管的网站运行良好并且可以通过(http://(uni 地址)/(我的帐户名)/public_html/lamp/apache2/htdocs/(等等..)。但是,连接到数据库的代码的某些部分给了我以下警告:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我正在使用以下代码连接到数据库:
mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass);
其中 dbhost 是“本地主机”。
因为它引用 /var/run/mysqld/mysqld.sock - 这显然意味着它试图连接到错误的东西,因为我安装的灯堆栈中的 mysql 在其 my.cnf 中有以下内容:
[mysqladmin]
user=root
[mysqld]
basedir=(my account folder)/public_html/lamp/mysql
datadir=(my account folder)/public_html/lamp/mysql/data
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock
tmpdir=(my account folder)/public_html/lamp/mysql/tmp
[mysqld_safe]
mysqld=mysqld.bin
[client]
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock
[manager]
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock
pid-file=(my account folder)/public_html/lamp/mysql/tmp/manager.pid
default-mysqld-path=(my account folder)/public_html/lamp/mysql/bin/mysqld.bin
所以我的问题是,有人知道如何让它连接到正确的套接字吗?此外, var/run/mysqld/mysqld.sock 根本不存在,我显然没有创建它的权限(我根本看不到它是如何服务于我的目的的)。
从昨天开始就一直困扰着我。任何帮助将不胜感激。
干杯!
【问题讨论】:
【参考方案1】:您可能必须通过使 $CFG->dbhost 指向套接字文件
$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock';
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass);
看看有没有用!
另一个建议是,您还应该确保套接字文件实际上是由您的 mysql 服务在该位置“(我的帐户文件夹)/public_html/lamp/mysql/tmp/mysql.sock”创建的
编辑:
我们只需要确认您的 mysql sock 文件的路径是有效的,并且文件已经被创建,看起来是这样的。
您能否确认您可以从命令行手动连接到 mysql 服务器,这将是帮助诊断的另一个好步骤。
mysql --socket=<my account folder>/public_html/lamp/mysql/tmp/mysql.sock -u <username> -p
编辑 2:
当您在上面的示例中替换您的帐户文件夹时,只需快速确认您使用的是文件的完整路径。
例如
/home/<username>/public_html/lamp/mysql/tmp/mysql.sock
【讨论】:
如何检查文件是否由我的mysql服务创建?我推测这是因为它是在安装 bitnami 灯组后创建的。另外,我尝试了示例#3。它给了我同样的警告,我仔细检查了 mysql.sock 的位置,它肯定在那里,我允许完全访问它。再次感谢 是的。我已经尝试过“/home/以上是关于无法通过php使用Bitnami灯堆栈连接到mysql的主要内容,如果未能解决你的问题,请参考以下文章
无法将R连接到AWS中的Bitnami服务器中托管的mysql
无法连接到 AWS 托管的 Bitnami 实例中的 phpmyadmin
在 bitnami 灯堆栈实例上运行 nodejs 应用程序