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

时间:2019-02-22 18:00:31

标签: c++ mysql mysql-connector

该库是否允许通过套接字连接到数据库,还是必须使用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 )

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

尝试:

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

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