我如何配置本地服务器以允许 jdbc 连接到 mysql?

我如何配置本地服务器以允许 jdbc 连接到 mysql?

我有一个小的 Java 应用程序。目前,我正尝试让它与 mysql 一起工作。我在其上运行着 VMware Workstation 和 Ubuntu Server 10.10。当我尝试连接到服务器(从运行 VMware 的 PC)以启动 mysql 驱动程序的 JDBC 连接时,它不起作用。我之前在 SO 上问过类似的问题。第一个也是唯一一个回答(目前)可能是防火墙或连接类型有问题,但我不知道如何正确配置它。

也许有人可以帮忙完成这部分?

我还尝试从我的应用程序创建一个*.jar文件,并在链接中放置了本地主机,并且在服务器上它运行良好,所以我想它再次证明连接期间存在一些限制。

答案1

我的猜测是绑定地址

mysql 的默认端口是 3306。使用以下命令检查其是否监听所有接口netstat -tanlp | grep LISTEN | grep 3306

tcp        0      0 0.0.0.0:3306  0.0.0.0:*  LISTEN      mysqld

如果出现这种情况,127.0.0.1:3306则说明您的 mysql 仅在本地主机上监听。如果是这种情况,请更改您的 mysql 的my.cnf 绑定地址环境:

bind-address    = 10.0.0.1

或者

bind-address = 0.0.0.0 

监听所有接口。

更新: 好的,现在您可以连接到端口 3306。错误信息:

Host 'vm_ip' is not allowed to connect to this MySQL server

意味着没有防火墙/iptables 阻挡。消息来自 MySQL 本身。您需要执行适当的“授权”以允许您的“用户”从您的“主机”连接到数据库。从安全角度来看,您需要非常小心此处启用的内容。请参阅以下 URL 以获取帮助:

http://dev.mysql.com/doc/refman/5.5/en/access-denied.html

很多网站都提供授予所有人权限的链接。使用这些链接时请务必小心谨慎。如果您的用户需要只读权限,那么您可以先这样做:

GRANT select ON mydatabase.* to myusername@'192.168.1.1' IDENTIFIED BY 'mypasssword';

对执行“GRANT all”类型的命令要非常小心。

相关内容