2006-09-26 [長年日記]
@ [perl] DBIでCan't connect to local MySQL server through socket '/tmp/mysql.sock'
MySQLの通信用のソケットファイルをデフォルトの/tmp/mysql.sockから/tmp/mysql-4.0.sockに変えていたのですが、DBIでconnectする時に何も指定しないと「Can't connect to local MySQL server through socket '/tmp/mysql.sock'」というエラーになります。
ぐぐって見るとこんなページにはconnectする際のDSNにport=/tmp/mysql-4.0 とあるのですが、これでも解消しませんでした。んで、DBD::mysqlのドキュメントにmysql_socketというオプションがあったので、
DBI:mysql:database=test;host=localhost;mysql_socket=/tmp/mysql-4.0.sock
という風に指定するとうまくつながりました。DBD::mysql 2.9003なんですが、昔はportでも大丈夫だったんですかねぇ。
[ツッコミを入れる]