2009-11-08 80 views
3

好吧,这将是一个长期的问题。无法连接到MySQL使用Bitnami灯栈通过php

我试图让我的大学帐户上运行一些东西。我们有一个public_html文件夹,我们可以使用它作为网页空间来托管我们想要的任何东西。

我已经在public_html文件夹中安装了Bitnami灯栈(可能不是最好的主意,安全方面,但我只会测试这个应用程序几天并拉下来,所以我真的不' (我的帐户名/ public_html/lamp/apache2/htdocs /我的帐户名)/我想要托管的站点工作正常并且可以访问(http://(uni address)/ (等)但是,连接到DATABSE代码的某些部分给了我以下警告:

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是'localhost'。

由于它引用了/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

您可能必须指定使用mysql_connect在my.cnf中定义的插座(你应该可以看到例如3#功能expample)通过使$ CFG-> DBHOST指向套接字文件,而不是本地主机

$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock'; 
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

看看是否有用!

咨询的另一个字,你也应该确保实际上是由于在该场所“(我的账户文件夹)/public_html/lamp/mysql/tmp/mysql.sock”

你的MySQL服务创建的套接字文件

编辑:

我们只需要确认的路径,你的mysql袜子文件是有效的并且文件被创建,它似乎是。

您还可以确认您是否可以通过命令行手动连接到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 
+0

如何检查文件是否由我的mysql服务创建?我假设它是因为它是在安装bitnami灯栈之后创建的。 另外,我尝试了示例#3。它给了我同样的警告,我仔细检查了mysql.sock的位置,它绝对存在,我允许完全访问它。 再次感谢 – MikiRei 2009-11-08 07:45:37

+0

是的。如果我使用“/ home/”,我已经尝试了“/ home/”和全路径文件,以防万一它不能正确重定向。 – MikiRei 2009-11-08 08:29:37

+0

你是否设法通过命令行连接到mysql服务器? – houmam 2009-11-08 08:41:25