window下的java程序连接linux系统的mysql数据库

来源:互联网 发布:c语言实训步骤怎么写 编辑:程序博客网 时间:2024/06/17 02:44

实现的功能:window下连接linux的mysql数据库

准备的环境

windows1.已经编写好的连接数据库的java测试程序:

package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/*** ResultSet结果集的基本用法(executeQuery()将会返回ResultSet结果集)* @author zanzan**/public class Demo2 {public static void main(String[] args){Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");long start = System.currentTimeMillis();conn = DriverManager.getConnection("jdbc:mysql://与linux的ip映射的域名:映射的端口号/数据库名称", "mysql数据库登陆名", "密码");System.out.println(conn);//进行数据库的查询String sql = "select id,name from test where id>?";//?表示占位符//建立PraparedStatemen对象进行SQL静态语句的操作,同时返回PraparedStatememnt对象,导入PraparedStatement包ps = conn.prepareStatement(sql);ps.setObject(1, 0);rs = ps.executeQuery();//将结果集进行遍历while(rs.next()){System.out.println(rs.getInt(1)+"---"+rs.getString(2));}long end = System.currentTimeMillis();System.out.println("建立与数据库的连接所需要的时间"+(end-start)+"ms");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//关闭顺序是按照先开后关的原则if(rs!=null){try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(ps!=null){try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null){try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}


2.由于是linux是在内网,我使用花生壳将内网的ip映射到域名上,外网通过访问域名和对应映射的端口号20151002155501

3.navicat for mysql测试linux数据库的连接是否成功

20151002160854

linux:

1.vmware下安装centos6.4

2.通目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面

rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

yum list | grep mysql //查看数据库

yum install -y mysql-server mysql mysql-deve//通过yum方式安装mysql数据

通过yum安装数据库可以省去很多麻烦

3.用ifconfig得到linux的ip

[root@localhost 桌面]# ifconfigeth0 Link encap:Ethernet HWaddr 00:0C:29:88:CD:97inet addr:<span style="background-color: rgb(255, 0, 0);">192.168.0.116</span> Bcast:192.168.0.255 Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe88:cd97/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:4281 errors:0 dropped:0 overruns:0 frame:0TX packets:2053 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:3985317 (3.8 MiB) TX bytes:160402 (156.6 KiB)

用navicat测试:

1出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061);

原因:MySQL不准许远程连接。

解决方案:

1)在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 ;(在MySQL 5的my.ini中未发现此项,则试着添加)

2)重新启动MySQL服务。(service mysqld restart)

2.出现“1045-Access denied for user root@IT(using password:NO)”

原因:没有给远程登录用户添加所有机器都能访问的权限

解决方案:

添加命令如下:

1)grant all on *.* to 用户名@"%" identified by "密码";

2)flush privileges.

其中:

*.*表示赋予用户操作服务器上所有数据库所有表的权限;

用户名可以是localhost,这里我填写root;

’%'表示从任何地址连接,这里我填写映射的域名.

20151002162813

下面是连接结果:

mysql创建的测试表:

3123

eclipse下运行java测试程序:

6564cd


通过以上的方法,实现了在window下访问linux的mysql数据库,连接的时间比较长

2 0
原创粉丝点击