2017年4月11日火曜日

MySQLのDBLINK

Server version: 10.1.21-MariaDB MariaDB Serverを基準にします。

DBLinkを入れるdatabaseを作成します。
MariaDB [mysql]> create database parkdb;

parkdbにZabbixにあるtableをDBLinkします。
enginesを確認します。
MariaDB [mysql]> show engines;
+--------------------+---------+-
| Engine             | Support |
+--------------------+---------+-
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+-
8 rows in set (0.00 sec)

MariaDB [mysql]>

FEDERATEDは Defaultではないです。
ですのでインストールが必要です。

①FEDERATED インストール

MariaDB [mysql]> install plugin federated soname 'ha_federated.so';
Query OK, 0 rows affected (0.03 sec)
MariaDB [mysql]> show engines;
+--------------------+---------+
| Engine             | Support |
+--------------------+---------+
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| FEDERATED          | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+
9 rows in set (0.00 sec)

②DBLink作成

MariaDB [mysql]> CREATE SERVER dblink
    -> FOREIGN DATA WRAPPER mysql
    -> OPTIONS (USER 'zabbix', PASSWORD 'zabbix' , HOST '127.0.0.1', PORT 3306, DATABASE 'zabbix');
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> 

Database zabbixへ接続ができるユーザーを書きます。

③dblink対象のテーブル作成

[root@localhost ~]# mysql -uzabbix zabbix -pzabbix
MariaDB [zabbix]> 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)
    -> );
Query OK, 0 rows affected (0.04 sec)

④DBLinkテーブル作成

[root@localhost ~]# mysql -uzabbix parkdb -pzabbix
MariaDB [parkdb]> 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=FEDERATED
    -> DEFAULT CHARSET=utf8
    -> CONNECTION='dblink/test_table';
Query OK, 0 rows affected (0.00 sec)

MariaDB [parkdb]> 

⑤確認

Zabbix DATABASEへInsertする。
MariaDB [zabbix]> insert into test_table values (1,'park',0);
Query OK, 1 row affected (0.01 sec)

MariaDB [zabbix]> 

parkd DATABASEからselectする。
MariaDB [parkdb]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
+----+------+-------+
1 row in set (0.01 sec)
parkd DATABASEへInsertする。
MariaDB [parkdb]> insert into test_table values (2,'uri',0);
Query OK, 1 row affected (0.00 sec)

MariaDB [parkdb]> 

Zabbix DATABASEからSelectする。
MariaDB [zabbix]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
|  2 | uri  |     0 |
+----+------+-------+
2 rows in set (0.00 sec)

MariaDB [zabbix]> 


以上です。

0 件のコメント: