我有我的小Java应用程序。 目前我正试图让它与MySQL的工作。 我运行了VMware Workstation和Ubuntu Server 10.10。 当我试图连接到服务器(从我的PC运行VMware)开始JDBC驱动程序的连接,它不起作用。 我在前面问过类似的问题。 首先也是唯一的答案 (目前)是防火墙或连接types可能是问题,但我不知道如何正确configuration它。
也许有人可以帮助这个部分?
另外我试图从我的应用程序创build一个*.jar文件,并在我放置本地主机和服务器上的链接工作正常,所以我想这再次certificate,在连接过程中有一些限制。
我的猜测是绑定地址
mysql的默认端口是3306.检查它是否在所有接口上使用netstat -tanlp | grep LISTEN | grep 3306监听 netstat -tanlp | grep LISTEN | grep 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本身。 您将需要做适当的“授予”,让您的“用户”从您的“主机”连接到数据库。 从安全的angular度来看,你需要非常小心你在这里启用。 请参阅以下URL寻求帮助:
http://dev.mysql.com/doc/refman/5.5/en/access-denied.html
有很多网站都有授予所有人在他们的链接types。 要非常小心你使用这些。 如果你的用户需要只读访问,那么你可以开始类似于:
GRANT select ON mydatabase.* to myusername@'192.168.1.1' IDENTIFIED BY 'mypasssword';
要非常谨慎地做一个“GRANT all”types的命令。