前提是服务器的mysql上有该用户,以及对应的IP
可登入mysql服务器上执行
grant all on test to 用户名@‘客户机IP’ identified by '密码' ;
flush privileges; #刷新权限表,让所做修改生效
上面指令的意思是 将test这个数据库的全部内容以及全部的 *** 作权限赋权给从特定IP上登入到本服务器的用户。
1、首先输入代码
public void SendBy>
new Thread(new Runnable() {
@Override
public void run() {
try {
>
>
List<NameValuePair> params=new ArrayList<NameValuePair>();//将id和pw装入list
paramsadd(new BasicNameValuePair("ID",id));
paramsadd(new BasicNameValuePair("PW",pw));
final UrlEncodedFormEntity entity=new UrlEncodedFormEntity(params,"utf-8");//以UTF-8格式发送
>
>
if(>
2、然后再输入下方的代码:
{
>
String response=EntityUtilstoString(entity1, "utf-8");//以UTF-8格式解析
Message message=new Message();
messagewhat=USER_LOGIN;
messageobj=response;
handlersendMessage(message);使用Message传递消息给线程
}
}
catch (Exception e) {
eprintStackTrace();
}
}
})start();
}3、最终,测试结果图,如下:
排除网络或防火墙问题
先看是否能ping通远程服务器,ping 1921681211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 1921681211 3306,如果连接失败,配置防火墙。
配置防火墙,开启3306端口
2检查MySQL配置
如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:
netstat -apn|grep 3306tcp6 0 0 127001:3306 ::: LISTEN 13524/mysqld注意地方,这说明3306被绑定到了本地。检查一下mycnf的配置,这里可以配置绑定ip地址。
bind-address=addr
不配置或者IP配置为0000,表示监听所有客户端连接。
ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。
3检查用户访问权限
MySQL建用户的时候会指定一个host,默认是127001/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。
最后,别忘了重启mysql使配置生效。
以上几个原因,你看一下是否适用你的情况
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)