Perl not connecting to MySQL

MacPorts macports at hyperbole-software.com
Tue Mar 12 03:02:52 UTC 2019


On 3/11/19 6:04 PM, macports at raf.org wrote:
> MacPorts wrote:
>
>> On 3/11/19 1:34 AM, Andrew Udvare wrote:
>>>> On 2019-03-11, at 00:10, MacPorts <macports at hyperbole-software.com> wrote:
>>>>
>>>> I noticed that the socket in /var/mysql is called mysql.sock while the one in /opt/local/var/run/mysql5 is called mysqld.sock (note the 'd' between 'l' and '.').
>>>>
>>>> I tried using
>>>>    $ sudo ln -s /var/mysql/mysql.sock /opt/local/var/run/mysql5/mysqld.sock
>>>>
>>>> for some reason that also didn't work.
>>>>
>>>> Then I tried:
>>>>    $ sudo ln -s /var/mysql/mysql.sock /opt/local/var/run/mysql5/mysql.sock
>>>>    $ sudo mv /opt/local/var/run/mysql5/mysql.sock /opt/local/var/run/mysql5/mysqld.sock
>>>>
>>>> this worked. I don't know why this worked and making the link directly didn't, but at least it's working now.
>>>>
>>> I ran into a similar issue a long time ago with PHP. PHP has an option to control this setting at build time and it also has a runtime option in php.ini.
>>>
>>> The DBI port should be doing the same. I don't think users should have to add things outside of the prefix, unmanaged by port.
>>>
>> I thought creating a link from the socket file to where Perl expects to
>> find it was working. It's not.
>>
>> What is working is to specify the path to the socket file with
>> "mysql_socket=/var/mysql/mysql.sock" in the dsn when I make the
>> connection, but, that makes the code specific to my machine, so I'd like
>> to find a better solution. Still looking.
>>
>> Carl.
> how about putting the dsn in a config file for your application
> or getting it from an environment variable rather than having
> it inside the application's code?
>
> cheers,
> raf
>
>
I have
[client]
socket=/var/mysql/mysql.sock

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

in /etc/my.cnf and /opt/local/etc/mysql57/my.cnf. I've looked for other
config files and can't find any others that apply to MySQL.

I set the environment variable DBD_MYSQL_SOCKET=/var/mysql/mysql.sock.

$dbh = DBI->connect($dsn, $db_user_id, $db_password)

still says: Can't connect to local MySQL server through socket
'/opt/local/var/run/mysql57/mysqld.sock



Thanks for the suggestions,
Carl.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20190311/3069e1ec/attachment.html>


More information about the macports-users mailing list