|
Posted by JL on January 27, 2005, 11:19 pm
Please log in for more thread options
Platform: Linux Red Hat RHEL 3 (and red hat 9)
Installed MySQL from source. As a matter of fact, installed all LAMPS
from source, and the mysql socket file was arranged in a place other
than /tmp/mysql.sock. Let's say, /opt/mysql_root/sock/mysql.sock.
Installed DBI without any problem.
In /etc/my.cnf there are lines as
----- ----- -----
[client]
socket = /opt/mysql_root/sock/mysql.sock
....
[mysqld]
socket = /opt/mysql_root/sock/mysql.sock
....
----- ----- -----
The access rights issues to the directory was taken care off.
The problem came when installing DBD::mysql from source.
perl Makefile.Pl
make
make test => problem begins:
----- excerpt -----
....
....
.... error: ..."can't connect to local mysql server through socket
/tmp/mysql.sock" ...
....
.... [Error 2]
------ end ------
I have built everything from source, so there shouldn't be a problem of
"mysql server was built with binary and the others were built with
different packages, such as using the package from Linux o/s, etc."
And the mysqld was running while DBD installation was being progressed.
I didn't have problem with shell command line connecting to the server,
and code in PHP that connects to the server worked fine.
It seems that DBD::mysql doesn't (or doesn't have the intelligence to)
check /etc/my.cnf file when starting mysql client. I have tried
# ln -s /opt/mysql_root/sock/mysql.sock /tmp/mysql.sock
and the problem was solved. I prefer not to use this method.
Maybe rebuilding mysql with
"--with-unix-socket-path=/opt/mysql_root/sock/mysql.sock" will solve
the problem?
Or, setting shell variable
"MYSQL_UNIX_PORT=/opt/mysql_root/sock/mysql.sock" will do, too. So in
perl code, before we start db connection, we can set
$ENV = "/opt/mysql_root/sock/mysql.sock"?
I am trying to solve this problem at the system building phase, and to
avoid having to modify the original perl code, for example, from:
--
$dsn = "DBI:mysql:test";
$dbh = DBI->connect($dsn, $user, $password);
--
to
--
$dsn = "DBI:mysql:test;mysql_read_default_group=client;"
. "mysql_read_default_file=/usr/local/mysql/data/my.cnf";
$dbh = DBI->connect($dsn, $user, $password);
--
so that the old perl code can be ported to the newly installed system
without modification.
Appreciate your expertise
----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000
Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---
|
| Similar Threads | Posted | | [RESOLVED] DBD::mysql unresolved symbol _intel_fast_memcpy & mysql-standard-5.0.22-linux-i686-icc-glibc23 | August 29, 2006, 6:33 pm |
| How to read an IFO file ? | February 25, 2006, 3:12 pm |
| MySQL 5.0 and Perl DBD-MySQL | December 3, 2005, 1:10 am |
| Embedded mysql with DBD::mysql | July 30, 2008, 10:15 am |
| [RFC] File::Rotate - read from rotating logfiles | November 29, 2004, 7:29 am |
| Is there a module that can check if user "foo" may read a file? | August 5, 2005, 3:59 pm |
| [RFC] File::Rotate::Syslog - read from rotating syslog files | November 29, 2004, 8:36 am |
| install HTML::Template - Problem reading cache file / Bad file number | July 24, 2004, 7:55 pm |
| Reading contents of an excel file from a test file | May 15, 2007, 2:49 am |
| A do-file location: how the code inside that do-file find it? | January 20, 2008, 12:32 am |
|