3

わかりました、これは長い質問になります。

大学のアカウントで何かを起動して実行しようとしています。必要なものをホストするための Web スペースとして使用できる public_html フォルダーがあります。

私は 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 は「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 はまったく存在せず、明らかにそれを作成する権限がありません (それが私の目的をどのように果たすかはまったくわかりません)。

これは昨日から私を悩ませていました。どんな助けでも大歓迎です。

乾杯!

4

1 に答える 1

1

$ CFG-> dbhostがソケットファイルを指すようにすることで、localhostの代わりにmysql_connect(例3の機能例を見ることができるはずです)を使用してmy.cnfで定義されたソケットを指定する必要がある場合があります

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

それが機能するかどうかを確認してください!

別のアドバイスとして、ソケットファイルが実際にその場所のmysqlサービスによって作成されていることを確認する必要があります "(my account folder)/public_html/lamp/mysql/tmp/mysql.sock"


編集:

mysql sockファイルへのパスが有効であり、ファイルが作成されていることを確認する必要がありました。

また、コマンドラインからmysqlサーバーに手動で接続できることを確認できますか。これは、診断に役立つもう1つの良いステップです。

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
于 2009-11-08T07:05:57.963 に答える