- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBD::Mysql が使用する標準のsocketはどこから得ているか?)
DBD::Mysql が使用する標準のsocketはどこから得ているか?
このQ&Aのポイント
- DBD::MySQLの標準のsocketはどこから得ているのでしょうか?
- 質問者は、指定されたport(socket)が使用されない理由を知りたいです。
- 現在、質問者は/etc/my.cnfで/tmp/mysql.sockを指定しているが、エラーメッセージのsocketの設定場所が知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考URLによると、UNIXドメインのsocketの場合は、「mysql_socket」を指定するみたいですが。 portはINETドメイン用ではないかと。
その他の回答 (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です。
質問者
補足
>はじめまして。 はじめまして。 >スクリプトの中の、$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 で失敗します。
お礼
仰る通りでした。お恥ずかしい限りでございます。 どこかで誤解みたいで、portにsocketファイル名を書けばいいものと思い込んでしまったようです。 >クライアントに組みこまれているソケットのための >場所以外を使うのでなければ、通常このオプション >は必要ありません。 上記のように記載されているのですが、このクライアントとは何を指していて、どこから取得されているか分かりますでしょうか。my.cnfではないようなのです。
補足
http://dev.mysql.com/doc/mysql/ja/perl-dbi-class.htmlによると、mysql_read_default_fileを指定するとmysqlの基本設定を読み込んでくれる事が分かりました。