一、概述
本文主要介绍通过federated存储引擎建立远程连接表
测试环境:mysql 5.6.21
二、步骤
开启federated存储引擎
先查看federated存储引擎存储引擎是否启用
SHOW ENGINES ;
默认mysql是没有开启federated存储引擎,我这里因为已经配置了。
开启federated存储引擎只需要在my.cnf文件中增加‘federated'就可以。
创建远程连接表
mysql配置远程连接必须在本地创建federated存储引擎的表,配置远程连接参数,本地创建的表必须和远程表的定义保持一致,这里我就拿本地另一个案例数据库来做测试,效果和远程是一样。
show create table sakila.actor;
CREATE TABLE FEDERATED_actor ( `actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `first_name` varchar(45) NOT NULL, `last_name` varchar(45) NOT NULL, `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`actor_id`), KEY `idx_actor_last_name` (`last_name`) ) ENGINE =FEDERATED CONNECTION='mysql://root:123456@127.0.0.1:3306/sakila/actor';
注意:本地创建的表定义要和远程表一致,本地存储引擎选择:ENGINE =FEDERATED
CONNECTION选项中的连接字符串的一般形式如下:scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
还有一些连接字符串的例子:
CONNECTION='mysql://username:password@hostname:port/database/tablename'
CONNECTION='mysql://username@hostname/database/tablename'
CONNECTION='mysql://username:password@hostname/database/tablename'
注意:配置密码作为纯文本的话会存在安全问题,运行show create table,show table status是可以见的
SELECT * FROM test.federated_actor;
更新本地表
USE test; update federated_actor set last_name='GUINESS1' where actor_id=1; SELECT * FROM test.federated_actor; SELECT * FROM sakila.actor;
对本地进行更新操作,本地和远程的数据都被更改了。
增加字段
alter table federated_actor add column idtest INT DEFAULT 0;
federated存储引擎不支持alter table 操作
删除表
drop table test.federated_actor;
删除本地表对远程表无影响
三、总结
federated存储引擎就是mysql用来解决类型于其它数据库系统的dblink功能,但是配置federated相对来说麻烦一点,还需要在本地创建表,同时也存在安全方面的因素,总体来说该功能避还是很多,希望mysql在后续版本能有所改善。
以上就是本文的全部内容,希望对大家的学习有所帮助。
问题内容: 我一直在使用SQL Server,现在正在将MySQL用于一个项目。使用SQL Server,我们的开发人员可以在知道主机,用户名和密码的情况下连接到本地计算机上的远程数据库。但是,使用MySQL,要使开发人员能够从其本地计算机访问,我一直必须登录MySQL并执行: 开发人员机器的IP地址在哪里。当然,如果他们更改网络,则必须再次执行。有没有一种方法可以允许所有远程连接(如我在SQL
问题内容: 我已经在本地计算机上安装了MySQL Community Edition 5.5,并且希望允许远程连接,以便可以从外部源进行连接。 我怎样才能做到这一点? 问题答案: MySQL默认情况下允许这样做。 默认情况下禁用的是远程访问。如果要启用它,请在本地运行此SQL命令: 然后找到以下行并将其 注释 在文件中,该文件通常位于Unix / OSX系统上。在某些情况下,文件的位置是/etc/
本文向大家介绍Centos忘记mysql密码及允许远程连接的方法,包括了Centos忘记mysql密码及允许远程连接的方法的使用技巧和注意事项,需要的朋友参考一下 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将
本文向大家介绍CentOS 8 安装 MySql并设置允许远程连接的方法,包括了CentOS 8 安装 MySql并设置允许远程连接的方法的使用技巧和注意事项,需要的朋友参考一下 下载,安装先检查系统中是否有mysql ,MariaDB,如有,先卸载 如图,我的系统中存在mariaDB数据, 执行卸载如有mysql同理卸载方法相同 安装依赖环境 ,我们直接使用yum安装,依次执行 下载国内的MyS
本文向大家介绍MySql允许远程连接如何实现该功能,包括了MySql允许远程连接如何实现该功能的使用技巧和注意事项,需要的朋友参考一下 MySql允许远程连接如何实现该功能 要达到这个目的需要实现两点 开通用户权限 解除本地绑定 开通用户权限 首先登陆服务器端的MySQL 效果图 执行了代码以后会看到所有的用户以及对应的host 其中host的意思就是指允许访问的Ip地址,%的意思就是任何IP,
我正在尝试允许SQL Server Express的远程连接。当使用Visual Studio从计算机A连接到计算机B上的SQL Server时,出现错误: 建立与SQL Server的连接时发生网络相关或实例特定的错误。找不到或无法访问服务器。验证实例名称是否正确,以及是否将SQL Server配置为允许远程连接 我遵循了下面的步骤,但没有帮助。 在要从远程计算机连接到的SQL Server实例
问题内容: 我一直在localhost上建立一个网络,当我尝试在主机上移动它时,它显示了很多错误。似乎无法连接到我的本地数据库。这是代码: 这是输出: 感谢帮助 问题答案: 这是mysql用户权限问题。例如,使用phpmyadmin创建一个新用户,如果从localhost连接,则将其主机设置为localhost;如果从外部连接,则将其主机设置为%。
本文向大家介绍Delphi远程连接Mysql的实现方法,包括了Delphi远程连接Mysql的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Delphi远程连接Mysql的实现方法,是Delphi数据库程序设计中非常重要的技巧。分享给大家供大家参考之用。具体方法如下: Delphi 通过ADOConnection链接远程Mysql数据库,要在安装软件的电脑上安装Mysql 驱动,