300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL—FEDERATED存储引擎的使用

MySQL—FEDERATED存储引擎的使用

时间:2020-04-24 17:58:58

相关推荐

MySQL—FEDERATED存储引擎的使用

FEDERATED存储引擎的功能与oracle的DBLINK基本类似,主要用来提供对远程MySQL服务器上面的数据的访问接口,默认情况下面,mysql是不启用该存储引擎的。

###开启FEDERATED存储引擎

1、查看是否开启FEDERATED存储引擎

mysql>show engines;

由此可以看出FEDERATED的状态是no,说明没有开启,如果没有的话说明没有编译进去,需要重新安装,FEDERATED是支持动态安装。

install plugin federated soname 'ha_federated.so';

要想开启的话是support为YES,可以在/etc/f/内添加federated(主要在mysqld的模块下添加,放在其他模块下无法识别变量),然后重启MySQL就可以了。

###创建远程用户并授权(本地数据库)

```

mysql> create user remote_user@'%' identified by '123';

mysql> create database test;

mysql> grant all on test.* to remote_user@'%';

mysql> flush privileges;

mysql> create user remote_user@'localhost' identified by '123';

mysql> grant all on test.* to remote_user@'localhost';

mysql> flush privileges;

mysql> select user,host from mysql.user;

```

###创建连接

本地数据库:

```

mysql> create table local_fed(

id int not null auto_increment,

name varchar(32) not null default '',

other int not null default '0',

primary key(id)

)

engine=federated

default charset=utf8mb4

connection='mysql://remote_user:123@192.168.214.129:3380/test/test_table';

```

注:

schema://user_name[:password]@host_name[:port_num]/db_name/tb1_name

解释说明:

schema:公认的连接协议,此时仅mysql作为该值;

user_name:连接的用户名,用户必须在远程服务器上创建;

password:用户名密码;

host_name:远程服务器的主机名或ip地址;

port_num:远程服务器的端口号,默认是3306

db_name:远程表的数据库名称;

tb1_name:远程表的名称,可以和本地表的名称不匹配。

远程数据库:表名可以不一致,但结构要一致。

```

CREATE TABLE test_table (

id INT(20) NOT NULL AUTO_INCREMENT,

name VARCHAR(32) NOT NULL DEFAULT '',

other INT(20) NOT NULL DEFAULT '0',

PRIMARY KEY (id),

INDEX name (name),

INDEX other_key (other)

)

ENGINE=MyISAM

DEFAULT CHARSET=utf8mb4;

```

###测试

在本地数据库内插入一条数据,远程数据库内就会实时同步数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。