数据库如何跨服务器连接
跨数据库使用比较简单,如ceshi数据库想使用Finance2014的A表,则使用SELECT FROM Finance2014dboA
跨服务器的使用,相对复杂一些 需要先连接服务器
EXEC sp_addlinkedserver 'srv_lnk','','SQLOLEDB','1921682249'EXEC sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','12345'
再设置保证存储过程能够使用
EXEC sp_serveroption @server='srv_lnk',@optname='rpc',@optvalue='TRUE'EXEC sp_serveroption @server='srv_lnk',@optname='rpc out',@optvalue='TRUE'
4再跨服务器调用数据库表和存储过程如:
SELECT FROM srv_lnkAdboB 其中A为数据库B为表
EXEC srv_lnkAdboB 其中A为数据库B为存储过程
1、前言
MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序,特别是与PHP更是黄金组合,运用十分广泛。
由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进一步的安全加固。作为一个MySQL的系统管理员,我们有责任维护MySQL数据库系统的数据安全性和完整性。
MySQL数据库的安全配置必须从两个方面入手,系统内部安全和外部网络安全,另外我们还将简单介绍编程时要注意的一些问题以及一些小窍门。
2、系统内部安全
首先简单介绍一下MySQL数据库目录结构。MySQL安装好,运行了mysql_db_install脚本以后就会建立数据目录和初始化数据库。如果我们用MySQL源码包安装,而且安装目录是/usr/local/mysql,那么数据目录一般会是/usr/local/mysql/var。数据库系统由一系列数据库组成,每个数据库包含一系列数据库表。MySQL是用数据库名在数据目录建立建立一个数据库目录,各数据库表分别以数据库表名作为文件名,扩展名分别为MYD、MYI、frm的三个文件放到数据库目录中。
MySQL的授权表给数据库的访问提供了灵活的权限控制,但是如果本地用户拥有对库文件的读权限的话,攻击者只需把数据库目录打包拷走,然后拷到自己本机的数据目录下就能访问窃取的数据库。所以MySQL所在的主机的安全性是最首要的问题,如果主机不安全,被攻击者控制,那么MySQL的安全性也无从谈起。其次就是数据目录和数据文件的安全性,也就是权限设置问题。
从MySQL主站一些老的binary发行版来看,321xx版本中数据目录的属性是775,这样非常危险,任何本地用户都可以读数据目录,所以数据库文件很不安全。322xx版本中数据目录的属性是770,这种属性也有些危险,本地的同组用户既能读也能写,所以数据文件也不安全。323xx版本数据目录的属性是700,这样就比较好,只有启动数据库的用户可以读写数据库文件,保证了本地数据文件的安全。
如果启动MySQL数据库的用户是mysql,那么象如下的目录和文件的是安全的,请注意数据目录及下面的属性:
shellls -l /usr/local/mysql
total 40
drwxrwxr-x 2 root root 4096 Feb 27 20:07 bin
drwxrwxr-x 3 root root 4096 Feb 27 20:07 include
drwxrwxr-x 2 root root 4096 Feb 27 20:07 info drwxrwxr-x 3 root root 4096 Feb 27 20:07 lib drwxrwxr-x 2 root root 4096 Feb 27 20:07 libexec drwxrwxr-x 3 root root 4096 Feb 27 20:07 man drwxrwxr-x 6 root root 4096 Feb 27 20:07 mysql-test drwxrwxr-x 3 root root 4096 Feb 27 20:07 share drwxrwxr-x 7 root root 4096 Feb 27 20:07 sql-bench drwx------ 4 mysql mysql 4096 Feb 27 20:07 var
shellls -l /usr/local/mysql/var
total 8
drwx------ 2 mysql mysql 4096 Feb 27 20:08 mysql
drwx------ 2 mysql mysql 4096 Feb 27 20:08 test
shellls -l /usr/local/mysql/var/mysql
total 104
-rw------- 1 mysql mysql 0 Feb 27 20:08 columns_privMYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 columns_privMYI
-rw------- 1 mysql mysql 8778 Feb 27 20:08 columns_privfrm
-rw------- 1 mysql mysql 302 Feb 27 20:08 dbMYD
-rw------- 1 mysql mysql 3072 Feb 27 20:08 dbMYI
-rw------- 1 mysql mysql 8982 Feb 27 20:08 dbfrm
-rw------- 1 mysql mysql 0 Feb 27 20:08 funcMYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 funcMYI
-rw------- 1 mysql mysql 8641 Feb 27 20:08 funcfrm
-rw------- 1 mysql mysql 0 Feb 27 20:08 hostMYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 hostMYI
-rw------- 1 mysql mysql 8958 Feb 27 20:08 hostfrm
-rw------- 1 mysql mysql 0 Feb 27 20:08 tables_privMYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 tables_privMYI
-rw------- 1 mysql mysql 8877 Feb 27 20:08 tables_privfrm
-rw------- 1 mysql mysql 428 Feb 27 20:08 userMYD
-rw------- 1 mysql mysql 2048 Feb 27 20:08 userMYI
-rw------- 1 mysql mysql 9148 Feb 27 20:08 userfrm
如果这些文件的属主及属性不是这样,请用以下两个命令修正之:
shellchown -R mysqlmysql /usr/local/mysql/var
shellchmod -R go-rwx /usr/local/mysql/var
1 直接的话,试试federated能不能满足。
在1服务器上开启federated引擎支持,创建一个federated引擎表bb2表connection到2服务器的b表
在aa的触发器中更新bb2表。
不过federated有较多的限制,也缺乏错误检测,整个过程的实现需要考虑周全。
2 间接的话,只能把aa表数据同步过去,在2服务器中使用修改后的aa触发器更新bb表。
bitsCNcom
MySQL以其简单易用,功能强大赢得了很多开发人员的喜爱,伴随Web 20浪潮,MySQL也正经历着前所未有的黄金时段,使用各种精心设计的工具来管理MySQL数据库要比单纯使用传统的方法轻松得的多,开发人员应该不断寻找那些能够缩短开发时间的工具。
但笔者一直在寻找一款满意的MySQL管理工具,并且要是开源或免费,因此诞生了本文,笔者为本文起名为:10个最好的免费MySQL管理工具,但是编者认为世上之物,没有最好,只有更好。不过笔者介绍的几款免费的MySQL管理工具还是很好的,希望这些工具能帮助开发人员和MySQL数据库维护人员简化工作,提高效率。
一、MySQL Workbench
MySQL Workbench是一个由MySQL开发的跨平台、可视化数据库工具。它作为DBDesigner4工程的替代应用程序而备受瞩目。MySQL Workbench可以作为windows、linux和OS X系统上的原始GUI工具,它有各种不同的版本,你可以查看下面的链接以获得它的版本信息。
二、phpMyAdmin
phpMyAdmin是一款免费的、用PHP编写的工具,用于在万维网上管理MySQL,它支持MySQL的大部分功能。这款含有用户界面的软件能够支持一些最常用的操作(比如管理数据库、表格、字段、联系、索引、用户、许可,等等),同时你还可以直接执行任何SQL语句。
它所具备的特性:
>直观的Web界面
>支持大多数MySQL功能:
> 浏览和丢弃数据库、表格、视图、字段和索引
>创建、复制、删除、重命名以及更改数据库、表格、字段和索引
>维护服务器、数据库以及表格,能对服务器的配置提出建议
>执行、编辑和标注任何SQL语句,甚至批量查询
>管理MySQL用户以及用户权限
>管理存储的过程(stored procedures)和触发器(triggers)
>从CSV 和 SQL文件格式中导入数据
>能够以多种格式导出数据:CSV、SQL、XML、PDF、ISO/IEC 26300等
>管理多台服务器
>为数据库布局创建PDF图表
>使用Query-by-example (QBE)创建复杂的查询
>在数据库中进行全局搜索,或者在数据库的子集中进行搜索
>用预定义的函数把存储的数据转化成任何格式
>还具有其他更多特性
三、Aqua Data Studio
对于数据库管理人员、软件开发人员以及业务分析师来说,Aqua Data Studio是一个完整的集成开发环境(IDE)。它主要具备了四个方面的功能:1)数据库查询和管理工具;2)一套数据库、源代码管理以及文件系统的比较工具;3)为Subversion(SVN)和CVS而设计了一个完整的集成源代码管理客户端;4)提供了一个的数据库建模工具(modeler),它和最好的独立数据库图表工具一样强大。
四、SQLyog
SQLyog是一个全面的MySQL数据库管理工具(/‘GUI’/'Frontend‘)。 它的社区版(Community Edition)是具有GPL许可的免费开源软件。这款工具包含了开发人员在使用MySQL时所需的绝大部分功能:查询结果集合、查询分析器、服务器消息、表格数据、表格信息,以及查询历史,它们都以标签的形式显示在界面上,开发人员只要点击鼠标即可。此外,它还可以方便地创建视图和存储过程,最近几周笔者一直在反复使用这个功能。
五、MYSQL Front
这个MySQL数据库的图形GUI是一个“真正的”应用程序,它提供的用户界面比用PHP和HTML建立起来的系统更加精确。因为不会因为重载HTML网页而导致延时,所以它的响应是即时的。如果供应商允许的话,你可以让MySQL-Front直接与数据库进行工作。如果不行,你也只需要在发布网站上安装一个小的脚本即可。登录信息会存储在你的硬盘上,因此你不必再登录到不同的网络界面上了。
六、mytop
mytop是一款基于控制台的工具(不是GUI),用于监视线程以及MySQL 322x、323x和4x服务器的整体性能。它可以在大多数安装了Perl、DBI以及 Term::ReadKey的Unix系统上(包括Mac系统OS X)运行。如果你安装了Term::ANSIColor,你能得到彩色的视图。如果你安装了Time::HiRes,你还可以得到一个不错的 “每秒查询数” 实时统计。mytop07版甚至还能在windows上运行。
mytop的灵感来自系统监视工具“top”。我经常在Linux、FreeBSD和Solaris上使用top,你很可能会在mytop中注意到来自这些操作系统的某些特性。mytop连接到MySQL服务器之后,能定期运行SHOW PROCESSLIST和SHOW STATUS命令,并以一种有用的格式总结从这些命令中所获得的信息。
七、Sequel Pro
Sequel Pro是一款管理MAC OSX数据库的应用程序,它可以让你直接访问本地以及远程服务器上的MySQL数据库,并且支持从流行的文件格式中导入和导出数据,其中包括SQL、CSV 和XML等文件。最初,Sequel Pro只是开源CocoaMySQL工程的一个分支。部分特性如下:
>你很容易就可以建立起一个到Mac电脑本地MySQL服务器的连接
>它具有全部的表格管理功能,包括索引。
>支持MySQL视图
>它使用多窗口功能,能够立即支持多个数据库或表格
八、SQL Buddy
SQL Buddy是一个强大的轻量级Ajax数据库管理工具。它非常易于安装,你只需要把文件夹解压到服务器里就行了,这再简单不过了!你还可以进行常见的绝大部分操作。这个工具还有许多有用的快捷键,你可以从这里查看:SQL Buddy Keyboard Shortcuts
九、MySQL Sidu
MySQL Sidu是一款免费的MySQL客户端,它通过网络浏览器来运行,非常容易上手!Sidu这几个字母表示Select(选择)、Insert(插入)、Delete(删除)和Update(更新)。Sidu其实还有更多的功能,它看起来更像MySQL前端软件的GUI而不是网页。
>SIDU支持SQL选择、插入、删除,更新功能。
>SIDU支持在浏览器上工作,如Firefox、IE、Opera、Safari、Chrome等等。
>SIDU看起来像MySQL前端软件的GUI而不是网页。
>SIDU可以跟MySQL、Postgres 和SQLite DBs一起工作。
十、Navicat Lite MySQL Admin Tool
Navicat是一款快速、可靠的数据库管理工具,很受大家的欢迎。Navicat专门用来简化数据库管理并且减少管理成本,它旨在满足数据库管理人员、数据库开发人员以及广大中小企业的需要,它有一个很直观的GUI,可以让你安全便捷的创建、组织、访问以及分享信息。
对于MySQL来说,Navicat工具是一个强大的数据库管理和开发工具。它可以跟任何版本的MySQL数据库服务器(321版或者以上版本)一起工作,并且支持MySQL大多数最新的功能,包括Trigger、Stored Procedure、Function、Event, View和 Manage User等。Navicat Lite可以免费下载,但是仅适用于非商业活动。
bitsCNcom
将 OBS(Object Storage Service)作为 MySQL 数据目录的原因是为了实现数据的高可用性、可扩展性和持久性。OBS是一种分布式对象存储服务,它提供了可靠的数据存储和访问能力,适用于海量数据的存储和处理。
拓展内容:
1 高可用性:将 MySQL 数据目录存储在 OBS 上可以实现数据的备份和冗余,当数据库发生故障时,可以快速恢复数据。同时,OBS 提供了多个数据中心的分布式存储,可以实现跨区域的数据备份,保证数据的高可用性。
2 可扩展性:使用 OBS 作为 MySQL 数据目录,可以方便地扩展存储容量。当数据量增加时,只需在 OBS 上增加存储空间,而无需对数据库进行大规模的硬件升级,降低了成本和维护的复杂性。
3 持久性:OBS 提供了数据的持久化存储,确保数据的可靠性和持久性。即使出现硬件故障或网络中断,数据在 OBS 上也能得到保护和恢复。这对于数据的安全性和可靠性是非常重要的。
需要注意的是,将 MySQL 数据目录放在 OBS 上需要考虑网络延迟和数据同步的问题。因为 OBS 是基于云存储的服务,数据的读写可能会受到网络延迟的影响。因此,在设计架构时需要合理规划数据的访问模式和同步策略,以确保数据库的性能和一致性。
0条评论