Perl not connecting to MySQL

MacPorts macports at hyperbole-software.com
Sat Mar 9 21:35:02 UTC 2019


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.

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:
   DBI
connect('database=Collection;host=localhost','<user-id>','<password>')
failed:
   Can't connect to local MySQL server through socket
'/opt/local/var/run/mysql57/mysqld.sock' (2)

I ran the following commands and got the following results:
$ mysql_config --socket
   /tmp/mysql.sock
$ ls /tmp/mysql.sock
   ls: /tmp/mysql.sock: No such file or directory
$ netstat -ln | grep mysql
   2a38c310548e6efd stream      0      0 2a38c31054a79055               
0                0                0 /var/mysql/mysql.sock
$ mysqladmin -p -u root variables | grep socket
   Enter password:
   | socket                                            |
/var/mysql/mysql.sock                                                                                                 
|
$ ls /var/mysql/mysql.sock
   /var/mysql/mysql.sock=
$ ls /etc/my.cnf
   my.cnf          my.cnf.wba.bak 


/etc/my.cnf   exists and contains
   [mysqld]
   safe-user-create

   [client]
   socket=/var/mysql/mysql.sock

   [mysqld]
   socket=/var/mysql/mysql.sock


/opt/local/etc/mysql57/my.cnf   exists and contains
   # Use default MacPorts settings
   !include /opt/local/etc/mysql57/macports-default.cnf

   [client]
   socket=/var/mysql/mysql.sock


/opt/local/etc/mysql57/macports-default.cnf   exists and contains
   # WARNING! ANY CHANGES TO THIS FILE WILL BE LOST ON UNINSTALL/UPGRADES!
   # Make your changes to /opt/local/etc/mysql57/my.cnf
   # YOU HAVE BEEN WARNED!

   # MacPorts default options
   [mysqld]
   # skip-networking so multiple mysql server ports can be loaded
   # without each competing for port 3306.
   skip-networking

I found this thread:
http://mac-os-forge.2317878.n4.nabble.com/bp-seqfeature-load-pl-module-cannot-connect-to-mysql-td140155.html
which recommends that you create a link from /var/mysql/mysql.sock to
/opt/local/var/run/mysql5.
   ( you may need to sudo mkdir -v /opt/local/var/run/mysql5 first)
   $ sudo ln -s /var/mysql/mysql.sock /opt/local/var/run/mysql5

I make the link, but Perl still can't connect to local MySQL server
through socket '/opt/local/var/run/mysql57/mysqld.sock'.

Can anyone please suggest how I can get Perl to connect to MySQL?



Thanks for any help you may be able to suggest,
Carl.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20190309/1cb151a9/attachment.html>


More information about the macports-users mailing list