使用mysql/mariadb外部表(DBLINK,FEDERATED)的方法
最初
由于没有在mysql – mariadb中找到有关DBLINK的文章,所以我将它总结在一起。严格说来,虽然有一些相关的文章,但日语容易出现乱码,并且没有涵盖到很详细的文章,所以我还是决定留下来。
前提 tí)
• MySQL 8.0:MySQL 八点零
• MariaDB 10.3:MariaDB 十点三
在MySQL中存在主要表,在MariaDB中引用MySQL的表。
虽然我没有尝试过,但在MySQL或MariaDB等数据库中,应该可以使用相同的步骤进行处理。
MySQL方面
mysql> create table dummyTable ( id int , name varchar(255));
Query OK, 0 rows affected (0.01 sec)
mysql> desc dummyTable;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into dummyTable values (1,'あああ');
Query OK, 1 row affected (0.00 sec)
mysql> insert into dummyTable values (2,'aaaa');
Query OK, 1 row affected (0.00 sec)
mysql> select * FROM dummyTable;
+------+-----------+
| id | name |
+------+-----------+
| 1 | あああ |
| 2 | aaaa |
+------+-----------+
2 rows in set (0.00 sec)
MariaDB方面
MariaDB > create table dummyTable (id int ,name varchar(255))
-> ENGINE=FEDERATED
-> default charset=utf8
-> CONNECTION='mysql://xxxx:xxxx@xxxxx/xxxxxx/dummyTable';
--------------
create table dummyTable (id int ,name varchar(255))
ENGINE=FEDERATED
default charset=utf8
CONNECTION='mysql://xxxx:xxxx@xxxxx/xxxxxx/dummyTable'
--------------
Query OK, 0 rows affected (0.002 sec)
MariaDB > select * FROM dummyTable;
--------------
select * FROM dummyTable
--------------
+------+-----------+
| id | name |
+------+-----------+
| 1 | あああ |
| 2 | aaaa |
+------+-----------+
2 rows in set (0.003 sec)
重点
- 引擎=联合
- 这是DBLINK的引擎
- 默认字符集=utf8
- 不加这个会导致日文乱码。utf8部分应根据各自的环境进行修改。
- 显示变量像’%char%’;
- 连接=’mysql://xxxx:xxxx@xxxxx/xxxxxx/dummyTable’
- 连接=’mysql://用户名:密码@服务器名/数据库名/表名’
文献引用
-
- https://mariadb.com/kb/en/federated-storage-engine/
- https://dev.mysql.com/doc/refman/8.0/en/federated-storage-engine.html