客户端通过unix_socket方式连接MySQL

我的系统是Ubuntu 8.10 desktop x86版,使用apt-get安装mysql服务端,配置文件路径:/etc/mysql/my.inf

1.查看mysql server的配置文件

 27 [mysqld_safe]
 28 socket          = /var/run/mysqld/mysqld.sock
 29 nice            = 0
可以看到unix_socket路径是 /var/run/mysqld/mysqld.sock

 

2.填写客户端连接函数参数

函数原型:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user,
const char *passwd, const char *db, unsigned int port, const char *unix_socket,
unsigned long client_flag)

mysql_real_connect(&mysql, NULL, "root", "123456;", "mysql", 0, "/var/run/mysqld/mysqld.sock", 0)

重点解释一下:

第二个参数host,要么写成"localhost",要么写成NULL,但是绝对不能写成IP地址,如果写成IP地址,连接方式会选择TCP/IP,而不是unix_socket;

第七个参数unix_socket,必须写成mysql server配置文件中的那个路径。

 

最后的建议:

如果程序和mysql服务器不在同一台电脑上,是无法使用unix_socket连接方式的,所以必须位于同一台主机。对于位于同一台主机上,而使用API进行开发的项目,强烈建议使用unix_socket连接方式,而不要使用TCP/IP方式,因为前者的效率更高!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值