MYSQL远程访问配置方式HTTP请求(mysqlhttp请求)
Mysql远程访问是以服务的形式提供的,目的是让用户从远处的计算机中访问数据库。Mysql远程访问的配置安全性非常重要,这里介绍一种基于HTTP请求的Mysql远程访问配置方法。
1. 在服务器端,将mysql绑定到IP对应的网段,以让客户端可以访问。在mysql配置文件中设置:
bind_address=...
其中…为IP,在服务器端配置好后,重新启动mysql服务,以便使新的配置生效。
2. 使用AddUser方法向Mysql添加用户,以允许客户端登录。在Mysql的控制台中输入:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
username为用户名,password为密码,%表示匹配所有IP,即允许全部客户端登录,执行上述指令后用户就被添加成功了。
3. 为了能够让远程客户端可以执行客户端上的Mysql操作,必须要为该新添加的用户提供足够的权限。在Mysql控制台中输入:
GRANT all privileges on *.* to 'username'@'%';
这样客户端就可以对Mysql服务器进行相应的操作。
4. 在客户端上,使用HTTP请求来访问Mysql服务器,发起连接到Mysql服务器上指定的IP。详细步骤:
(1)创建HTTP请求,设置参数如下:
HTTP_CLIENT = new DefaultHttpClient();
HttpPost post = new HttpPost("http://...:3306/");ArrayList postData= new ArrayList();
postData.add(new BasicNameValuePair("username","username"));postData.add(new BasicNameValuePair("password","password"));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postData);post.setEntity(formEntity);
…为mysql所在服务器的IP,username和password分别为Step2中指定的用户名和密码。
(2)发出请求,接收相应:
HttpResponse response = httpclient.execute(post);
if(response.getStatusLine().getStatusCode() == 200){ //登录成功
System.out.println("Connection successful");}
用这种HTTP请求的方式我们可以远程访问Mysql数据库,但是这种方式对安全性要求极高,正确操作安全性相关的字段很重要,以避免数据泄漏。此外,连接服务器的客户端也需要在特定的时间内发起连接,以保证不被攻击者利用。