mysql - 连接到 MySQL 数据库

标签 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 正在运行。

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

系统会提示我输入密码,然后我得到: 错误 2003 (HY000):无法连接到“192.168.1.13”(111) 上的 MySQL 服务器

我已将主机/用户添加到mysql数据库中的用户表中并重新启动MySQL。我已将数据库上的“ALL”授予任何主机 ('%') 上的用户,并且已明确将对端口 3306 的访问权限添加到 ubuntu 防火墙: iptables -A 输入 -p tcp --dport 3306 -j 接受

我当然会在部署之前限制访问,但在开发数据库时我需要能够以有意义的形式与数据库进行交互。我很高兴重新安装各种组件并重新开始,因为这在项目中还处于早期阶段,但理想情况下我想知道我配置错误或哪里出了问题。

最佳答案

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

还请注意,指定 localhost 会被 mysql 服务器特殊对待。它并不像人们预期的那样调用 127.0.0.1。

有关如何绑定(bind)到外部 IP 地址的更多信息:

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

关于mysql - 连接到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247761/

相关文章:

python - 在 Python 中重命名文件时出现 FileNotFoundError,但文件确实被重命名了

tcp - 使用 SIP,什么时候使用 TCP 而不是 UDP?

c - 为什么我的recv调用会阻塞?

php - 基于另一个字段获取一个字段的不同 mysql 结果

ubuntu - 如何删除使用 Meteor Up 创建的部署实例?

linux - PostgreSQL 12 - "base"目录中的大型缓存文件

c - C中的服务监听返回-1

javascript - 我怎样才能在全日历中显示比标题更多的内容

Python 3.5 MySQL 连接器

mysql - 使用自定义查询显示多级下拉列表的最新数据?