2009-12-24 23 views
7

DBD :: mysql ile DBI kullanarak, veritabanına bağlanmaya çalışırken aşağıdaki hatayı alıyorum.Nasıl mysql.sock nerede DBD :: mysql söyleyebilirim?

DBI connect('database=mydb:host=localhost','someuser',...) failed: Can't connect 
    to local MySQL server through socket '/tmp/mysql.sock' (2) at ./myscript.pl line 97 

Evet MySQL çalışıyor ve çalışıyor. Sorun mysql.sock in/tmp değil olmasıdır.
Ben mysql.sock konumunu biliyorum ve şu anda çalıştığı hack var, mysql.sock dosyasının geçerli konumuna yumuşak bir bağlantı oluşturdum. MySQL konfigürasyonunu değiştirmemeyi tercih ederim, ancak bu muhtemelen yapılacak en kolay şey olacaktır.

DBD :: mysql dosyasına girmenin ve mysql.sock'u doğru konumda aramak için yapılandırmanın bir yolu var mı?

Sen Ayrıntılı bilgi için bağlantı yönteminin

my $dbh = DBI->connect("DBI:mysql:database=dbname;host=localhost;mysql_socket=/path/to/mysql.sock","someuser","somepassword", {'RaiseError' => 1}); 

yılında soket yerini belirtebilirsiniz

cevap

13

Sen beri ana belirtmek gerekmez docs here

+1

Bu mükemmel. Teşekkürler. – bkoch

3
$dbh=DBI->connect("DBI:mysql:database=dbname;mysql_socket=/var/lib/mysql/mysql.sock;user=username;password=password"); 

bir göz lütfen bir soket dosyasına bağlanıyorsunuz.

İlgili konular