SQLServer 分布式查询MySQL
这学期开了分布式数据库这门课,开始编程实现,今天调试了一早上,写下此配置文件方便查询。
本文实现的是SQLServer2008 Express 链式添加MySql-5.6.10数据库,进行远程操作。
一、下载安装MySql数据库
下载解压缩MySql安装包,解压之后大约是1G,安装在D盘。用管理员身份打开cmd.exe,换到D:\mysql-5.6.10-win32\bin目录下。
执行下面:
1 |
mysqld -install |
提示安装成功,恭喜你的MySql已经可以正常使用了,剩下的就是启动操作你的数据库了
1
2 |
从Windows命令行启动MySQL服务器,启动控制台窗口并输入命令:D:\mysql- 5.6 . 10 -win32\bin>mysqld -nt 从Windows命令行停止MySQL服务器,启动控制台窗口并输入命令:D:\mysql- 5.6 . 10 -win32\bin>mysqladmin -u root shutdown |
成功启动之后,打开你的任务管理器,你会看到有一个MySql服务正在运行。
启动MySql服务之后,接下来进行连接数据库:
1
2
3
4
5
6
7
8
9 |
D:\mysql- 5.6 . 10 -win32\bin>mysql -u root // 使用用户名为root,密码为空的根账号登陆mysql操作控制台 Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 2 Server version: 5.0 . 67 -community-nt MySQL Community Edition (GPL) Type ‘help;‘
or ‘/h‘ for help. Type ‘/c‘
to clear the buffer. mysql> quit //quit退出mysql连接 Bye D:/MySQL/bin> |
开启MySQL远程服务,连接好数据库后执行如下代码:
1
2 |
mysql> use mysql; mysql> GRANT ALL ON *.* TO admin@ ‘%‘
IDENTIFIED BY ‘admin‘
WITH GRANT OPTION; |
这样所以的用户都可以远程访问你的MySQL服务了
本文限于链式添加mysql数据库,关于my.ini配置文件大家去GOOGLE吧
二、下载mysql-connector-odbc-5.2.6-win32.msi驱动程序包
下载安装之后,就有了mysql ODBC驱动包
接下来打开你的控制面板,在搜索里面搜 “管理工具”,如图:
双击打开数据源(ODBC),选择MySQL ODBC 5.2 ANSI Driver驱动配置你的MySQL系统数据源,并且选择你的表
三、打开SQLServer Management进行添加操作
1
2
3
4
5
6
7
8
9
10
11
12
13 |
EXEC sp_addlinkedserver @server = ‘MySQLTest‘ , --添加在SQLServer中链式服务器名字 @srvproduct = ‘MySQL‘ , @provider
= ‘MSDASQL‘ , @datasrc
= ‘myDSN‘
--在 2 步骤中添加的数据源名字 GO EXEC sp_addlinkedsrvlogin @rmtsrvname = ‘MySqlTest‘ , @useself = ‘false‘ , @locallogin = ‘sa‘ , @rmtuser = ‘mysql的用户名‘ , @rmtpassword = ‘mysql的密码‘ GO |
注意:如果Mysql修改密码后必须重新映射一下EXEC sp_addlinkedsrvlogin
到这步如果上面操作都正确,那么你就可以操作你的MySQL远程数据库了
下面是对MySQL执行增删查改的SQL语句,和操作远程SQLServer语句略有不同
1
2
3
4
5
6
7
8
9
10 |
SELECT * FROM OPENQUERY (MySQLTest , ‘select * from 表名‘
) //查询 INSERT OPENQUERY (MySQLTest, ‘SELECT id,parentid,level,title FROM 表名‘ ) VALUES ( ‘‘ , ‘0‘ , ‘0‘ , ‘zhangzongqi‘ ); //添加 UPDATE OPENQUERY (MySQLTest, ‘SELECT parentid,level,title FROM 表名 WHERE id = 320‘ ) SET parentid = ‘2‘ ,LEVEL= 3 , title=title+ ‘pct‘ ; //更新 DELETE OPENQUERY (MySQLTest, ‘SELECT id FROM 表名WHERE id = 316‘ ); //删除 |
觉得好用的请赞一个,如果发现有不对的地方,请留言以更正,谢谢~
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。