
以下のようなスクリプトで、以下のようなエラーになっています。
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.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ではないようなのです。
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 で失敗します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl の外部モジュールの利用方法
-
perlをバージョンアップしたら...
-
Perlで時間の計算
-
perlのプログラミング 部分入れ...
-
ペプシコーラとコカ・コーラとD...
-
画像が表示でnull; this.src
-
英数文字列のうちの数値を4桁に...
-
Perlの全角スペース 文字化け?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
plalaで起こるリンクの不可解な...
-
実行時パラメータを使用するとE...
-
perlスクリプト s/^\\s+//; ...
-
perlでランダムな文字列を作りたい
-
perl から ncftpを使う場合にエ...
-
何時間後を求める。
-
PerlでIPアドレスを取得する方法
-
メールフォームから大きめの添...
-
txtをcsvに…
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAで、ユーザーフォー...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
VBでグローバル変数を宣言するには
-
標準モジュールを削除したい。(...
おすすめ情報