• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBD::Mysql が使用する標準のsocketはどこから得ているか?)

DBD::Mysql が使用する標準のsocketはどこから得ているか?

このQ&Aのポイント
  • DBD::MySQLの標準のsocketはどこから得ているのでしょうか?
  • 質問者は、指定されたport(socket)が使用されない理由を知りたいです。
  • 現在、質問者は/etc/my.cnfで/tmp/mysql.sockを指定しているが、エラーメッセージのsocketの設定場所が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

参考URLによると、UNIXドメインのsocketの場合は、「mysql_socket」を指定するみたいですが。 portはINETドメイン用ではないかと。

参考URL:
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql.pod
helonpa
質問者

お礼

仰る通りでした。お恥ずかしい限りでございます。 どこかで誤解みたいで、portにsocketファイル名を書けばいいものと思い込んでしまったようです。 >クライアントに組みこまれているソケットのための >場所以外を使うのでなければ、通常このオプション >は必要ありません。 上記のように記載されているのですが、このクライアントとは何を指していて、どこから取得されているか分かりますでしょうか。my.cnfではないようなのです。

helonpa
質問者

補足

http://dev.mysql.com/doc/mysql/ja/perl-dbi-class.htmlによると、mysql_read_default_fileを指定するとmysqlの基本設定を読み込んでくれる事が分かりました。

その他の回答 (1)

  • maboten
  • ベストアンサー率30% (17/55)
回答No.1

はじめまして。 スクリプトの中の、$ds=の行を $ds = 'DBI:mysql:db_name:localhost'; としてもダメでしょうか? socketの設定はmy.cnfの中で定義されてると思うのですが、/etcの中等にありませんか? もしかしたらperl moduleのインストールに失敗してるのかもしれませんね。 当方の環境は、mysql(ver3.23)、DataDumper、DBI、Msql Mysql modules、osはsolarisです。

helonpa
質問者

補足

>はじめまして。 はじめまして。 >スクリプトの中の、$ds=の行を >$ds = 'DBI:mysql:db_name:localhost'; >としてもダメでしょうか? はい。ダメなので socket を指定しているのですが、指定のsocketが利用されないようです。 >socketの設定はmy.cnfの中で定義されてると思うのですが、/etcの中等にありませんか? mysqlサーバとクライアントではそれが使用され、問題なく通信出来ています。 しかしPerl DBD mydqlから接続しようとすると、my.cnfの内容は参照されないようです。 >もしかしたらperl moduleのインストールに失敗してるのかもしれませんね。 DBD::Mysqlのmake test で失敗します。

関連するQ&A