電気ウナギ的○○

About Home

DBD::mysqlで、明示的にSocketの位置を指定する

shinoda (2010年4月30日 10:08)

Perl で、DBD::mysql モジュールを使って MySQL のデータベースに接続しているのだが、

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at hogehoge.pl line 97

というエラーになって接続出来ず。
この間書いたエントリー「MTOS で MySQL の Socket が見つからない時」と同じパターンじゃね。

これは、DB に接続する時に、

$dbname = 'hogehoge';
$user = 'hogeuser';
$passwd = 'hogepass';
$host = 'localhost';
$port = '3306';
$option = 'mysql_socket=/tmp/mysql.sock';

$dbh = DBI->connect("dbi:mysql:$dbname:$host:$port;$option", "$user", "$passwd");

と、オプションでソケットの位置を明示的に指定してやればOK。

しかし、何で my.cnf の socket 指定は読んでくれんのかね?
/etc/my.cnf には、

socket  = /tmp/mysql.sock

と書いているのだが。この値を使ってくれないの?

/etc/my.cnf に、

mysql_socket  = /tmp/mysql.sock

なんて書くと

[ERROR] /usr/local/mysql/libexec/mysqld: unknown variable 'mysql_socket=/tmp/mysql.sock'

って怒られるしね。

まあ、取りあえず動いているので良いが、釈然としないな。誰かエロい、いや、エラい人、MySQL のこと教えて!

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1122

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE