连接到MySQL数据库

时间:2014-04-23 14:43:51

标签: mysql ubuntu tcp odbc port

当我尝试使用32位和64位mysql-connector-odbc-5.3.2和连接字符串从Windows 7连接时:

Provider=MSDASQL;Driver={MySQL ODBC 5.3 Driver};Server=192.168.1.13;Port=3306;Database=mydb;Uid=root;Pwd=****;

我得到了

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

与5.2.6版同样。将提供商降级到5.1后,我得到:

[MySQL][ODBC 5.1 Driver]Can't connect to MySQL server on '192.168.1.13' (10060)

这更令人鼓舞,因为它至少已经认识到提供者。

我尝试添加防火墙规则以允许到端口3306的出站连接。我已尝试禁用本地防火墙。我检查过服务器正在侦听端口3306并验证了IP地址。 (tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN)我进一步验证了我可以访问服务器并且MySQL正在运行。

当我尝试使用ssh终端的IP地址连接到服务器本身时:     mysql -u root -h 192.168.1.13 -D whiskeywheel -p

我被提示输入密码,然后我得到:     ERROR 2003(HY000):无法在' 192.168.1.13'上连接到MySQL服务器(111)

我已将主机/用户添加到mysql数据库中的用户表并重新启动MySQL。我已经授予了所有' ALL'在数据库上给任何主机上的用户('%')并且我已经明确地将访问端口3306添加到ubuntu防火墙:     iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

我当然会在部署之前限制访问,但我需要能够在开发它的同时以有意义的形式与数据库进行交互。我很乐意重新安装任何各种组件并重新开始,因为这在项目中已经足够早,但理想情况下我想知道我错误配置的内容或我出错的地方。

1 个答案:

答案 0 :(得分:0)

默认情况下,mysql服务器只绑定服务器上的环回地址(127.0.0.1)。你必须编辑服务器的my.cnf文件并重新启动mysql服务器。

另请注意,mysql服务器会特别指定localhost。它不像人们期望的那样调用127.0.0.1。

有关如何绑定到外部ipaddress的更多信息:

http://www.cyberciti.biz/faq/unix-linux-mysqld-server-bind-to-more-than-one-ip-address/