我正在尝试使用Eclipse IDE创建一个JSF应用程序。我使用远程的MySQL服务器作为我的数据库。如何连接到这个远程数据库来创建表和访问它们?
我该如何在Eclipse IDE中连接到远程MySQL数据库并进行操作,包括创建表和访问表中的数据?import java.sql.*;
import javax.sql.*;
public class Connect
{
public static void main (String[] args)
{
Connection conn = null;
try
{
String url = "jdbc:mysql://localhost:3306/mydb";
Class.forName ("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection (url,"root"," ");
System.out.println ("Database connection established");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
}
String url = "jdbc:mysql://172.18.227.237/struts2"; conn = DriverManager.getConnection(url,"root","admin")
;。但现在我遇到了错误,com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user 'root'@'172.20.169.174' to database 'struts2'
。我已经获得了对MySQL服务器的远程访问权限。 - Angeline如果要从远程计算机访问数据库,您需要授予数据库的所有权限。
请运行以下脚本以授予权限: GRANT ALL PRIVILEGES ON . TO user@'%' IDENTIFIED BY 'password';
sudo /etc/init.d/mysql restart
重新启动远程机器上的mysql。 - cindyxiaoxiaoli在数据库连接字符串中更改VPS的IP /主机名,而不是localhost。例如,如果我的IP地址是193.23.127.130:
jdbc:mysql://193.23.127.130:3306/yourdatabase
然后确保您的VPS防火墙允许MySQL的3306端口。
接下来打开MySQL Workbench,进入Server-Users and Privileges,创建一个账户(在这个例子中账户为remoteUser,密码为password),确保Limit to Hosts Matching是%(表示可以从任何其他IP访问)
然后您就可以在Java中添加以下代码以进行远程访问
Connection connection = DriverManager.getConnection("jdbc:mysql://193.23.127.130:3306/swing_demo", "remoteUser", "password");
在'schema'中创建一个新用户(mysql.user)。
在你的mysql工作空间中运行以下代码
“GRANT ALL ON . to user@'%'IDENTIFIED BY '';
打开拥有数据库的机器上的'3306'端口。
控制面板 ->
Windows防火墙 ->
高级设置 ->
入站规则 ->
新建规则 ->
端口 ->
下一步 ->
TCP & 将端口设置为3306 ->
下一步 ->
下一步 ->
下一步 ->
填写名称和描述 ->
完成 ->
尝试通过cmd上包含DB服务器IP的telnet消息进行检查