远程mysql_java.sql.SQLException:null,message from server:"Host 'xxx' is not allowed to connect"

测试代码:

/**
 * 
 */
package edu.gzucm.thms.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Calendar;

/**
 * @author Hongten</br>
 * @date 2012-10-18
 * 
 */
public class SendData {

    public static int sendDate2Server(String ip, String port,
            String databaseName, String userName, String passwrod,String receiver,String content) {
        int flag = 0;
        try {
            // 加载MySql的驱动类
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("找不到驱动程序类 ,加载驱动失败!");
            e.printStackTrace();
        }
        // 连接MySql数据库,用户名和密码都是root
        String url = "jdbc:mysql://"+ip+":"+port+"/"+databaseName;
        System.out.println(url);
        String username = "root";
        String password = "root";
        String sql = getSQL(receiver, content);
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DriverManager.getConnection(url, username, password);
            pstmt = conn.prepareStatement(sql);
            flag = pstmt.executeUpdate(sql);
        } catch (SQLException se) {
            System.out.println("数据库连接失败!");
            se.printStackTrace();
        }
        if (pstmt != null) { // 关闭声明
            try {
                pstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) { // 关闭连接对象
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return flag;
    }
    
    public static String getSQL(String receiver,String content){
        /**
         * 下面是一些常量设置: retrytimes=0 pri=1 inpool=0 sendmode=1
         * sendtime和inserttime的格式是:2011-05-03 18:55:20
         */
        String now = getNow();
        return "insert into sms_boxsending(sender,receiver,content,sendtime,inserttime,retrytimes,pri,inpool,sendmode)values('system','"+receiver+"','"+content+"','"+now+"','"+now+"','0','1','0','1')";
    }
    
    /**
     * 获取当前时间,并格式化时间
     * 
     * @return 格式化当前的时间
     */
    public static String getNow() {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int min = calendar.get(Calendar.MINUTE);
        int sec = calendar.get(Calendar.SECOND);

        Object monthString = (month < 10) ? "0" + month : month;
        Object dayString = (day < 10) ? "0" + day : day;
        Object hourString = (hour < 10) ? "0" + hour : hour;
        Object minString = (min < 10) ? "0" + min : min;
        Object secString = (sec < 10) ? "0" + sec : sec;

        return "" + year + "-" + monthString + "-" + dayString + " "
                + hourString + ":" + minString + ":" + secString;
    }
    
    public static void main(String[] args) {
        //这里是调用远程机器B的mysql数据库
        System.out.println(sendDate2Server("210.38.111.34", "3306", "messagecat", null, null,"1342360****","this is a test 短信"));
        //这是测试本地的
        System.out.println(sendDate2Server("localhost", "3308", "messagecat", null, null,"1342360****","this is a test 短信"));
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值