1.在模式'mysql'中创建一个新用户(mysql.user)在mysql工作空间“GRANT ALL ON *.* to user@'%'IDENTIFIED BY '';中运行以下代码 1.打开具有数据库Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->的机器上的“3306”端口 1.尝试通过包含DB服务器IP的cmd上的telnet消息进行检查
9条答案
按热度按时间cwtwac6a1#
只需在数据库连接字符串中提供远程计算机的IP /主机名,而不是
localhost
。确保没有防火墙阻止对端口
3306
的访问此外,请确保您正在连接的用户被允许从此特定主机名进行连接。对于开发环境,使用
'username'@'%'
进行连接是安全的。请检查the user creation manual和GRANT
manual。disbfnqx2#
您需要在连接字符串中传递rempote机器的IP/hostname。
6qftjkof3#
要从远程机器访问数据库,您需要给予数据库所有权限。
运行以下脚本以给予权限:将 . 上的所有权限授予用户@' %'(由'password'标识);
bprjcwpo4#
另外,您应该确保MySQL服务器的配置(Debian上的/etc/mysql/my.cnf,/etc/default/mysql)没有激活“skip-networking”,并且没有专门绑定到环回接口(127.0.0.1),也没有绑定到您想要连接的接口/IP地址。
4bbkushb5#
1.在模式'mysql'中创建一个新用户(mysql.user)在mysql工作空间
“GRANT ALL ON *.* to user@'%'IDENTIFIED BY '';
中运行以下代码1.打开具有数据库
Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->
的机器上的“3306”端口1.尝试通过包含DB服务器IP的cmd上的telnet消息进行检查
a0zr77ik6#
关闭所有打开并连接到服务器侦听端口的连接,无论它是来自应用程序或客户端工具(navicat)或运行服务器(apache或weblogic)。首先关闭所有连接,然后重新启动所有工具MySQL,apache等。
az31mfrm7#
在我的.cnf文件中,请更改以下内容
现在的默认设置是仅侦听## localhost,而不是跳过网络,这更兼容,安全性也不差。## bind-address = 127.0.0.1
eimct9ow8#
在Ubuntu上,在创建了localhost和'%'版本的用户,并为这两个版本授予了对database.tables的适当访问权限之后,我不得不注解掉/etc/mysql/mysql.conf.d/mysql.cnf中的'bind-address',并以sudo的形式重新启动mysql。
绑定地址= 127.0.0.1
13z8s7eq9#
更改数据库连接字符串中vps的IP /主机名,而不是localhost。例如,如果我的IP是193.23.127.130:
然后确保你的vps防火墙允许MySQL使用3306端口。
然后转到MySQL工作台,服务器-用户和权限,创建一个帐户(在本例中为帐户:remoteUser,password:password),确保“主机匹配限制”为%(表示您可以从任何其他IP访问)x1c 0d1x
然后设置密码并授予权限,然后应用
然后可以在Java中添加以下代码以远程访问