Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по 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.