2

Perl スクリプトで DBI モジュールを使用して、リモートの MySQL サーバーに簡単に接続できます。ただし、CGI スクリプト内から同じ接続設定/プロパティを使用しようとすると、接続に失敗します。

を使用しているにも関わらず、Apache エラー ログまたはブラウザーに記録される有用なエラー/警告はありません。

use CGI::Carp qw(warningsToBrowser fatalsToBrowser);

奇妙なことに、ターミナルから実行すると、まったく同じスクリプトが正常に機能します。また、CGI スクリプトを localhost の MySQL サーバーに接続しようとしましたが、成功しませんでした。

一方、phpMyAdmin はマシン上でうまく機能します。

CentOS リリース 5.8 を使用しています。私はそれがapacheユーザーまたはOS上の他の場所のシステム/権限の問題であると疑っていますが、行き止まりに達しています。

どんなポインタでも大歓迎です!

どうもありがとう。

編集:次の接続文字列を使用しています

$dbh = DBI->connect($ds, $uname, $pwd,{RaiseError => 1 }) or die "$DBI::errstr Could not connect: $!<br>";
4

2 に答える 2

2

修正しました。Linux の管理にあまり詳しくない人が同様の問題に直面した場合に備えて、何が起こったかを以下に示します。私の CentOS マシンのセキュリティ システム 'selinux' は、httpd がリモートの MySQL サーバーへのネットワーク接続を確立することを禁止していました。次のコマンドで明示的に有効にする必要がありました

setsebool -P httpd_can_network_connect=1

ここでselinuxの詳細を読むことができます:

http://wiki.centos.org/HowTos/SELinux

于 2012-09-18T16:32:02.787 に答える
0

MySQL で設定したユーザーを確認します。ネットワーク接続を介して接続しようとしている場合は、ユーザーのホストの関連付けに問題がある可能性があります。

試してください:mysql.userからホスト、ユーザーを選択してください

于 2012-09-14T18:37:32.520 に答える