如何远程访问MySQL数据库详解
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/myconf文件。
一、修改/etc/mysql/myconf
找到bind-address = 127001这一行
改为bind-address = 0000即可
二、为需要远程登录的用户赋予权限
1、新建用户远程连接mysql数据库
grant all on to admin@'%' identified by '123456' with grant option;
flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库
grant all privileges on to 'root'@'%' identified by '123456' with grant option;
flush privileges;
三、查看系统用户
前置条件:
1、在阿里云服务器de系统是win service 2012。
2、服务器里自己安装了my sql 57
3、本地也安装了my sql 57
需求:想通过本地的mysql连接上远程的服务器的mysql,这样自己在本地操作数据库比在服务器里数据库要好。
步骤:
一、增加允许远程连接 MySQL 用户 并授权。
在你安装路径下的bin文件夹里进行命令行的设置。
1、首先以 root 帐户登陆 MySQL
在服务器中打开命令行(shift+右键)
打开数据库管理员权限
mysql -uroot -p 123
我去,对应的是123是对应到数据库名。
果断改为
mysql -uroot -p
输入mysql的密码。
2、查看用户的权限
mysql> select host,user from user; (查看用户的权限情况)
3、创建远程登录用户并授权
进入到服务器的命令行里
输入
use mysql
在输入
grant all PRIVILEGES on discuz to ted@'123123123123' identified by '123456';
上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123123123123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
注意:
(1)all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
(2)discuz 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“”,对于某一数据库的全部表授权为“数据库名”,对于某一数据库的某一表授 权为“数据库名表名”。
(3)ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
(4)123123123123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
(5)123456 为用户的密码。
我最终使用的是把整个数据库的权限都ok,全部数据库的全部表,给root用户授权。没有设定远程连接IP地址。
4、执行更新权限(刷新权限)
flush privileges;
5、再一次查看数据库用户权限
mysql> select host,user from user; (再次查看用户的权限情况)
二、打开服务器上的防火墙阻止 3306 端口,可以公网访问。
MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。
如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。
找到防火墙的允许的应用,打开数据库的公用和专用。
三、在本地建立服务器数据库连接
1、点击这个
2、数据里填上连接的名字,服务器IP,以及连接数据库的名字和密码
3、点击configure server mangement
如果报这个错误,说明是服务器的3306端口与没有打开。
下面图连接成功
选择SSH login。。。。
输入服务器的公网IP和端口(我也不知道是啥端口我写的是本地跑的项目的本地接口)
一路next就ok。
有多种方法啊。介绍其中一种,使用mysql数据库的ODBC驱动。
步骤:
1安装mysql数据库的ODBC驱动,mysql-connector-odbc-35123-win32msi(其中是版本号),下载并安装。
2在Mysql中创建数据库实例。
3打开控制面板 -- 管理工具 -- 数据源ODBC,在用户DSN中添加一个MySQL ODBC 351数据源。
4在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库,Database选择你需要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql Server可能会出现问号乱码。
5打开sql server企业管理器,选择该数据库,单击右键选择所有任务 -- 导出数据。
6‘选择数据源’为默认,‘选择目的’为刚刚安装的mySQL数据源,用户/系统DSN为MysqlDNS。
方法2:
有多种方法啊。介绍其中一种,使用mysql数据库的ODBC驱动。步骤:
1安装mysql数据库的ODBC驱动,mysql-connector-odbc-35123-win32msi(其中是版本号),下载并安装。
2在Mysql中创建数据库实例。
3打开控制面板 -- 管理工具 -- 数据源ODBC,在用户DSN中添加一个MySQL ODBC 351数据源。
4在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库,Database选择你需要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql Server可能会出现问号乱码。
5打开sql server企业管理器,选择该数据库,单击右键选择所有任务 -- 导出数据。
6‘选择数据源’为默认,‘选择目的’为刚刚安装的mySQL数据源,用户/系统DSN为MysqlDNS。
1、wampserver安装好后,在浏览器中访问,localhost/phpmyadmin/,登录你当初设置的账号密码,就可以管理数据库了。
2、安装程序按照安装的步骤进行,一般的程序安装的时候需要你填入数据库连接的账号密码的。输入账号密。
3、然后编辑程序,输入:
<php
$mysql_server_name='localhost'; //改成自己的mysql数据库服务器
$mysql_username='root'; //改成自己的mysql数据库用户名
$mysql_password='12345678'; //改成自己的mysql数据库密码
$mysql_database='mycounter'; //改成自己的mysql数据库名
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
$sql='CREATE DATABASE mycounter DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
';
4、然后再输入:
mysql_query($sql);
$sql='CREATE TABLE `counter` (`id` INT(255) UNSIGNED NOT NULL AUTO_INCREMENT ,`count` INT(255) UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY ( `id` ) ) TYPE = innodb;';
mysql_select_db($mysql_database,$conn);
$result=mysql_query($sql);
//echo $sql;
mysql_close($conn);
echo "Hello!数据库mycounter已经成功建立!";
>
这样就完成了。
1、首先输入代码
public void SendByHttpClient(final String id, final String pw){
new Thread(new Runnable() {
@Override
public void run() {
try {
HttpClient httpclient=new DefaultHttpClient();
HttpPost httpPost=new HttpPost("http://web应用部署服务器上的IP地址:/HttpClientDemo/Login");//服务器地址,指向Servlet
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格式发送
httpPostsetEntity(entity);
HttpResponse httpResponse= httpclientexecute(httpPost);
if(httpResponsegetStatusLine()getStatusCode()==200)//在200毫秒之内接收到返回值
2、然后再输入下方的代码:
{
HttpEntity entity=httpResponsegetEntity();
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、最终,测试结果图,如下:
0条评论