以下のようなスクリプトで、以下のようなエラーになっています。
port(socket)を指定しているにもかかわらず使用されない理由も分からないのですが、エラーメッセージのsocketはどこで設定されているのでしょうか?
/etc/my.cnf で /tmp/mysql.sock を指定し、サーバーとクライアントは問題なく通信できています。
よろしくお願いします。
■perlスクリプト
----------------------------------------
#!/usr/local/bin/perl
use DBI;
$user = 'usr';
$passwd = 'password';
$ds = 'DBI:mysql:db_name;host=localhost;port=/tmp/mysql.sock';
$db = DBI->connect($ds, $user, $passwd);
(以下略)
■perlスクリプトのエラー
----------------------------------------
$ ./script_name.pl
DBI connect('db_name;host=localhost;port=/tmp/mysql.sock','root',...) failed: Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock' (2) at ./script_name.pl line 9
■環境
----------------------------------------
mysql:バイナリの(rpmでないやつ)4.0.24-standard
OS:Linux 2.4.20-31.9(REDHAT)
DBD:DBD-mysql-2.9004
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 で失敗します。
No.2ベストアンサー
- 回答日時:
参考URLによると、UNIXドメインのsocketの場合は、「mysql_socket」を指定するみたいですが。
portはINETドメイン用ではないかと。
参考URL:http://perldoc.jp/docs/modules/DBD-mysql-2.1026/ …
この回答への補足
http://dev.mysql.com/doc/mysql/ja/perl-dbi-class …によると、mysql_read_default_fileを指定するとmysqlの基本設定を読み込んでくれる事が分かりました。
補足日時:2005/05/01 15:08仰る通りでした。お恥ずかしい限りでございます。
どこかで誤解みたいで、portにsocketファイル名を書けばいいものと思い込んでしまったようです。
>クライアントに組みこまれているソケットのための
>場所以外を使うのでなければ、通常このオプション
>は必要ありません。
上記のように記載されているのですが、このクライアントとは何を指していて、どこから取得されているか分かりますでしょうか。my.cnfではないようなのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UTF-8で書かれたHTMLファイルを...
-
「CGIプログラムエラー」って何...
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAでリンク切れをチェッ...
-
erf(x)とerfc(x)のカタカナ読み...
-
Excel VBA 『Call』で呼び出す...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBA 定義されたプロージ...
-
w3cの検証エラー?
-
Excel VBAで、ユーザーフォー...
-
グラフのX,Y座標を取得したい
-
本当にPublicな変数(配列で)
-
モジュールの最大数はいくつな...
-
【vba】フォームに書いてあ...
-
vba 標準モジュールインポート...
-
VBAProjectのモジュ...
-
acwzlibとは?
-
シャープ製品JH-WB1821 と BCG...
-
教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
perlスクリプト s/^\\s+//; ...
-
何時間後を求める。
-
Perlでのルート計算で、小数点...
-
実行時パラメータを使用するとE...
-
「CGIプログラムエラー」って何...
-
perlでactive directoryに登録
-
perl+shiftjisで5c文字化けの対...
-
ローカルテストOKのPerl サー...
-
Pod::Usageで日本語を使用する...
-
メールフォームからの受信メー...
-
EUCのデータファイルをShift_ji...
-
use encoding 'shiftjis'; の不...
-
メールフォームから大きめの添...
-
Perlで長音
-
Encodeについて
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
LCD ディスプレイを Raspberry ...
-
「デバイスは PRN を初期化でき...
おすすめ情報