Here's how I understand it: - If hostname is localhost, but no port is supplied: use sockets. - If hostname is localhost, but a port is supplied: use TCP/IP.
In version 3.6.x, you were in situation #2. With version 3.7.x, you are in #1. -tk On Mon, Mar 13, 2017 at 3:58 PM, Theophanis Kontogiannis <[email protected]> wrote: > Hi Tom, > > Thank you for the follow up. > > Actually the standard MySQL/MariaDB way is to use sockets if the hostname > is localhost. > TCP/IP will only be used if the hostname is not localhost, or if an IP is > provided. > > So basically it works now as expected (non standard dirs etc) but had to > provide the ip address for the localhost (127.0.0.1) to force TCP/IP > connection. > > Should it be documented? > > Best regards, > > Theo > > > > On Tuesday, March 14, 2017 at 12:54:35 AM UTC+2, Tom Keffer wrote: >> >> Yes, the code did change. >> >> Before, it always passed in the hostname and port, which caused MySQL to >> always use a TCP/IP connection. Now it adds the port only if the hostname >> is 'localhost' or '127.0.0.1'. >> >> I suspect that you were connecting via TCP/IP all along. The change just >> exposed the problem. But, I'm not a MySQL (let alone MariaDB) expert! >> >> Try Googling "Can't connect to local MySQL server through socket >> '/var/lib/mysql/mysql.sock' " and see what you come up with. You may have >> to configure your installation explicitly to use /var/lib/mysql/mysql.sock. >> >> -tk >> >> >> >> On Mon, Mar 13, 2017 at 3:01 PM, Theophanis Kontogiannis < >> [email protected]> wrote: >> >>> Hello All, >>> >>> I have a mariadb on CEntOS 7.3 with non-standard datadir and socket. >>> >>> The configuration is implemented via drop in files. >>> >>> [root@tweety ~]# cat /etc/my.cnf.d/tweety.cnf >>> >>> >>> >>> [mysqld] >>> datadir=/mnt/services/DBs/mysql >>> socket=/mnt/services/DBs/mysql/mysql.sock >>> >>> [client] >>> >>> socket=/mnt/services/DBs/mysql/mysql.sock >>> >>> >>> The weewx configuration is: >>> >>> [[MySQL]] >>> driver = weedb.mysql >>> # The host where the database is located >>> host = *localhost* >>> # The user name for logging in to the host >>> user = weewx >>> # The password for the user name. Put in quotes to guard against >>> parsing errors. >>> password = ***** >>> >>> >>> I keep on getting an error on weewx launch: >>> >>> engine: Database OperationalError exception: (2002, "Can't connect to >>> local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)") >>> >>> >>> >>> Tried to 'setenforce 0' but I get the same error. >>> >>> Tried to add the non-standard socket in the /etc/my.cnf main config file >>> still no luck. >>> >>> The only way to make it work is to change the weewx.conf to force it use >>> the TCP/IP connector instead of the default socket connector. >>> >>> [[MySQL]] >>> >>> # The host where the database is located >>> >>> host = *127.0.0.1* >>> >>> >>> Is the socket location hard coded in the weedb.mysql? >>> >>> Is there something else I am doing wrong or missed in the documentation? >>> >>> Is there something that should be changed in the code or added in the >>> documentation? >>> >>> Thank you for your time. >>> >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "weewx-user" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "weewx-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
