Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Расширение кластера
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Справочник по SQL
Часто задаваемые вопросы
Среда MySQL:
Host: 127.0.0.1
Port: 3306
User: root
Database: test
Теперь создайте тестовую таблицу:
mysql> CREATE TABLE test(c1 int primary key, c2 int);
Query OK, 0 rows affected (0.01 sec)
Поскольку таблицы InnoDB в MySQL должны иметь первичный ключ, чтобы разрешить запись через mysql_fdw,
c1определён как первичный ключ.
Добавьте тестовые данные:
mysql> INSERT INTO test VALUES(0,0),(1,1),(2,2);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
Примечание
Приведённые ниже команды установки являются примерами. Названия RPM-пакетов могут отличаться в различных yum-репозиториях. Скачайте версию MySQL, подходящую для вашей системы. Не копируйте и не выполняйте эти команды без проверки.
Примечание
Конфигурация и установка должны быть выполнены на каждом узле кластера.
Выполните команду установки с правами sudo или от имени пользователя root:
sudo yum install -y rh-mysql57-mysql
Для оффлайн-сред скачайте следующие три RPM-пакета с официального сайта MySQL (common, libs, client). Затем установите их с помощью следующих команд:
sudo rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps
sudo rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps
sudo rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps
Создайте символическую ссылку из libmysqlclient.so в каталог YMatrix lib:
ln -s /lib64/mysql/libmysqlclient.so.18 /opt/ymatrix/matrixdb5/lib/libmysqlclient.so
Добавьте путь libmysqlclient.so в конфигурационный файл:
echo "/lib64/mysql/libmysqlclient.so.18" >> /etc/ld.so.conf
Войдите в YMatrix и используйте mysql_fdw для подключения к ранее созданной таблице MySQL.
Сначала создайте расширение mysql_fdw:
mxadmin=# CREATE EXTENSION mysql_fdw;
CREATE EXTENSION
Создайте описание сервера для MySQL:
mxadmin=# CREATE SERVER server_mysql FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '127.0.0.1', port '3306');
CREATE SERVER
Создайте отображение пользователя:
mxadmin=# CREATE USER MAPPING FOR mxadmin SERVER server_mysql OPTIONS (username 'root', password '123456');
CREATE USER MAPPING
Создайте внешнюю таблицу:
mxadmin=# CREATE FOREIGN TABLE ext_mysql (c1 int, c2 int) SERVER server_mysql OPTIONS (dbname 'test', table_name 'test');
CREATE FOREIGN TABLE
После успешного создания внешней таблицы вы можете читать и записывать данные в таблицу MySQL test, обращаясь непосредственно к внешней таблице.
Следующий запрос показывает, что данные во внешней таблице совпадают с исходной таблицей:
mxadmin=# SELECT * FROM ext_mysql;
c1 | c2
----+----
0 | 0
1 | 1
2 | 2
(3 rows)
Вставьте данные во внешнюю таблицу:
mxadmin=# INSERT INTO ext_mysql VALUES(3,3);
INSERT 0 1
После вставки подключитесь к MySQL и проверьте данные:
mysql> SELECT * FROM test;
+----+------+
| c1 | c2 |
+----+------+
| 0 | 0 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+----+------+
4 rows in set (0.00 sec)
Данные успешно записаны в таблицу MySQL test.