<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000099" bgcolor="#FFFFCC">
I recently upgraded my laptop to High Sierra. I had avoided
upgrading my Mac in the past because each time I did, it broke Perl.
After upgrading I started using MacPorts and upgraded Perl and
several modules. It looks to me as if MacPorts will correct my
upgrade problems.<br>
<br>
However, even though many of my Perl programs are running better
after installing Perl with MacPorts, I'm unable to get it to connect
to MySQL. When I try to connect to MySQL from Perl, I get the
following error:<br>
DBI
connect('database=Collection;host=localhost','<user-id>','<password>')
failed:<br>
Can't connect to local MySQL server through socket
'/opt/local/var/run/mysql57/mysqld.sock' (2)<br>
<br>
I ran the following commands and got the following results:<br>
$ mysql_config --socket<br>
/tmp/mysql.sock<br>
$ ls /tmp/mysql.sock<br>
ls: /tmp/mysql.sock: No such file or directory<br>
$ netstat -ln | grep mysql<br>
2a38c310548e6efd stream 0 0
2a38c31054a79055 0 0 0
/var/mysql/mysql.sock<br>
$ mysqladmin -p -u root variables | grep socket<br>
Enter password: <br>
| socket |
/var/mysql/mysql.sock
|<br>
$ ls /var/mysql/mysql.sock <br>
/var/mysql/mysql.sock=<br>
$ ls /etc/my.cnf<br>
my.cnf my.cnf.wba.bak <br>
<br>
<br>
/etc/my.cnf exists and contains<br>
[mysqld]<br>
safe-user-create<br>
<br>
[client]<br>
socket=/var/mysql/mysql.sock<br>
<br>
[mysqld]<br>
socket=/var/mysql/mysql.sock<br>
<br>
<br>
/opt/local/etc/mysql57/my.cnf exists and contains<br>
# Use default MacPorts settings<br>
!include /opt/local/etc/mysql57/macports-default.cnf<br>
<br>
[client]<br>
socket=/var/mysql/mysql.sock<br>
<br>
<br>
/opt/local/etc/mysql57/macports-default.cnf exists and contains<br>
# WARNING! ANY CHANGES TO THIS FILE WILL BE LOST ON
UNINSTALL/UPGRADES!<br>
# Make your changes to /opt/local/etc/mysql57/my.cnf<br>
# YOU HAVE BEEN WARNED!<br>
<br>
# MacPorts default options<br>
[mysqld]<br>
# skip-networking so multiple mysql server ports can be loaded<br>
# without each competing for port 3306.<br>
skip-networking<br>
<br>
I found this thread:
<a class="moz-txt-link-freetext" href="http://mac-os-forge.2317878.n4.nabble.com/bp-seqfeature-load-pl-module-cannot-connect-to-mysql-td140155.html">http://mac-os-forge.2317878.n4.nabble.com/bp-seqfeature-load-pl-module-cannot-connect-to-mysql-td140155.html</a>
which recommends that you create a link from /var/mysql/mysql.sock
to <span>/opt/local/var/run/</span><span><span class="bold
highlight search-highlight">mysql5.<br>
( you may need to sudo mkdir -v </span></span><span><span
class="bold highlight search-highlight"><span>/opt/local/var/run/</span><span><span
class="bold highlight search-highlight">mysql5 first)</span></span></span></span><br>
$ <span>sudo ln -s /var/<span class="bold highlight
search-highlight">mysql</span>/<span class="bold highlight
search-highlight">mysql</span>.sock </span><span><span><span
class="bold highlight search-highlight"><span>/opt/local/var/run/</span><span><span
class="bold highlight search-highlight">mysql5<br>
<br>
I make the link, but Perl still c</span></span></span></span></span>an't
connect to local MySQL server through socket
'/opt/local/var/run/mysql57/mysqld.sock'.<br>
<br>
Can anyone please suggest how I can get Perl to connect to MySQL?<br>
<br>
<br>
<br>
Thanks for any help you may be able to suggest,<br>
Carl.<br>
<br>
<br>
<br>
<span><span><span class="bold highlight search-highlight"><span><span
class="bold highlight search-highlight"></span></span></span></span></span>
</body>
</html>