Я использую mysql-connector-c ++ 1.1.9, но я хотел бы подключиться к базе данных mysql через сокет, а не tcp - PullRequest
0 голосов
/ 22 февраля 2019

Позволяет ли библиотека подключаться к БД через сокет, или вам нужно использовать tcp, и если да, кто-нибудь знает правильный формат?

/* Create a connection */
  driver = get_driver_instance();
  con = driver->connect("/var/run/mysql/mysql.sock", "user1", "passphrase");

Я просто получаю соединение, отказанное от БД1004 *

# ERR: Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused") (MySQL error code: 2003, SQLState: HY000 )

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Попробуйте с помощью:

/* Create a connection */
  driver = get_driver_instance();
  con = driver->connect("unix:///var/run/mysql/mysql.sock", "user1", "passphrase");

Проверьте, работает ли файл сокета Unix.

0 голосов
/ 22 февраля 2019

Согласно документации первый аргумент connect() должен быть в форме URL, а протокол unix: используется для ссылки на сокет домена Unix.Так должно быть:

con = driver->connect("unix:///var/run/mysql/mysql.sock", "user1", "passphrase");

Я полагаю, что по умолчанию он равен tcp://127.0.0.1, когда не может проанализировать параметр.

...