我正在使用mysql-connector-c ++ 1.1.9但我想通过socket而不是tcp连接到mysql db

问题描述 投票:-1回答:2

库是否允许通过套接字连接到数据库,或者您是否必须使用tcp,如果有,是否知道正确的格式?

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

我只是从数据库中拒绝连接

# ERR: Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused") (MySQL error code: 2003, SQLState: HY000 )
c++ mysql mysql-connector
2个回答
0
投票

根据documentationconnect()的第一个参数应该是URL的形式,而unix:协议用于指代Unix域套接字。所以它应该是:

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

我猜它无法解析参数时默认为tcp://127.0.0.1


0
投票

试试:

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

检查unix套接字文件是否正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.