当mysql中指定的socket路径改变时如何通过ODBC进行访问?

困扰我一下午的问题,现在终于明朗了。

我们都知道,mysql安装的时候客户端和服务端连接的时候在默认的情况下都是通过/tmp/mysql.sock这个链接来完成的。但是由于我们为了改变数据库的存放路径,我们也改变了这个默认的路径,可以通过my.cnf这个配置文件来修改,具体的参见我的另外一篇博文。

 

但是在 在改了这个sock之后,我用odbc连的时候却发现总是连不上,提示“[08S01][unixODBC][MySQL][ODBC 5.1 Driver]Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”, 检查驱动配置(odbcinst.ini)和unixODBC的dns的配置(odbc.ini)都正确,但是为什么还是连不上呢?

 

google了半天,仍然没发现什么问题?简直让我抓狂!!!后来在一篇博文中偶然发现odbc.ini中有个socket选项,突然想到,这是不是指定mysql中的socket路径呢?于是在odbc.ini中添加“Socket”选项,并指定socket的路径。然后isql -v DSN名 用户名  密码(注意用户名和密码一个都不能少,否则拒绝登陆),成功了!这说明我的设想是正确的。

 

附上我的驱动配置和数据源配置:

 

odbcinst.ini:

    # Example driver definitinions

#

#

 

# Included in the unixODBC package

[PostgreSQL]

Description     = ODBC for PostgreSQL

Driver          = /usr/lib/libodbcpsql.so

Setup           = /usr/lib/libodbcpsqlS.so

FileUsage       = 1

 

 

# Driver from the MyODBC package

# Setup from the unixODBC package

[MySQL]

Description     = ODBC for MySQL

Driver          = /usr/local/mysql/lib/libmyodbc5.so

Setup           = /usr/local/mysql/lib/libmyodbc3S.so

FileUsage       = 1

[SQLServer]

Description     = ODBC for SQLServer

Driver          = /usr/local/lib/libtdsodbc.so

Setup           = /usr/lib/libtdsS.so

FileUsage       = 1

 

 

 

odbc.ini:

 

[DongMSSQL]

Driver          = SQLServer

Description     = My First Test DSN

Trace           = No

Servername      = SQLSERVERTEST

Database        = master

User            = sa

Port            = 1433

[DongMySQL]

Driver          = MySQL

Description     = My First Test DSN

Trace           = No

Servername      = localhost

Database        = mysql

User            = root

Port            = 3306

Socket          = /home/data/mysql/mysql.sock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值