Rumah pangkalan data tutorial mysql 使用FREDATED引擎实现跨实例访问

使用FREDATED引擎实现跨实例访问

Jun 07, 2016 pm 04:06 PM
guna Contoh capai enjin pangkalan data Hidangkan akses

跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现。对于MySQL而言,有一个FEDERATED存储引擎与之相对应。同样也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了FEDERATED存储引擎,以及

跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现。对于MySQL而言,有一个FEDERATED存储引擎与之相对应。同样也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了FEDERATED存储引擎,以及演示了基于FEDERATED存储引擎跨实例访问的示例。

1、FEDERATED存储引擎的描述

\

2、安装与启用FEDERATED存储引擎

3、准备远程服务器环境

-- 此演示中远程服务器与本地服务器为同一服务器上的多版本多实例
-- 假定远程服务为:5.6.12(实例3406)
-- 假定本地服务器:5.6.21(实例3306)   
-- 基于实例3306创建FEDERATED存储引擎表test.federated_engine以到达访问实例3406数据库tempdb.tb_engine的目的

[root@rhel64a ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago) 

--启动3406的实例
[root@rhel64a ~]# /u01/app/mysql/bin/mysqld_multi start 3406
[root@rhel64a ~]# mysql -uroot -pxxx -P3406 --protocol=tcp

root@localhost[(none)]> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 3406  |
+---------------+-------+

--实例3406的版本号
root@localhost[tempdb]> show variables like 'version';
+---------------+------------+
| Variable_name | Value      |
+---------------+------------+
| version       | 5.6.12-log |
+---------------+------------+

--创建数据库
root@localhost[(none)]> create database tempdb;
Query OK, 1 row affected (0.00 sec)

-- Author : Leshami
-- Blog   :http://blog.csdn.net/leshami

root@localhost[(none)]> use tempdb
Database changed

--创建用于访问的表
root@localhost[tempdb]> create table tb_engine as 
    -> select engine,support,comment from information_schema.engines;
Query OK, 9 rows affected (0.10 sec)
Records: 9  Duplicates: 0  Warnings: 0

--提取表的SQL语句用于创建为FEDERATED存储引擎表
root@localhost[tempdb]> show create table tb_engine \G
*************************** 1. row ***************************
       Table: tb_engine
Create Table: CREATE TABLE `tb_engine` (
  `engine` varchar(64) NOT NULL DEFAULT '',
  `support` varchar(8) NOT NULL DEFAULT '',
  `comment` varchar(80) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8

--创建用于远程访问的账户
root@localhost[tempdb]> grant all privileges on tempdb.* to 'remote_user'@'192.168.1.131' identified by 'xxx';
Query OK, 0 rows affected (0.00 sec)

root@localhost[tempdb]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Salin selepas log masuk

4、演示FEDERATED存储引擎跨实例访问

[root@rhel64a ~]# mysql -uroot -pxxx

root@localhost[(none)]> show variables like 'version';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 5.6.21 |
+---------------+--------+

#查看是否支持FEDERATED引擎
root@localhost[(none)]> select * from information_schema.engines where engine='federated';
+-----------+---------+--------------------------------+--------------+------+------------+
| ENGINE    | SUPPORT | COMMENT                        | TRANSACTIONS | XA   | SAVEPOINTS |
+-----------+---------+--------------------------------+--------------+------+------------+
| FEDERATED | NO      | Federated MySQL storage engine | NULL         | NULL | NULL       |
+-----------+---------+--------------------------------+--------------+------+------------+

root@localhost[(none)]> exit
[root@rhel64a ~]# service mysql stop
Shutting down MySQL..[  OK  ]
#配置启用FEDERATED引擎
[root@rhel64a ~]# vi /etc/my.cnf
[root@rhel64a ~]# tail -7 /etc/my.cnf
[mysqld]
socket = /tmp/mysql3306.sock
port = 3306
pid-file = /var/lib/mysql/my3306.pid
user = mysql
server-id=3306/
federated         #添加该选项
[root@rhel64a ~]# service mysql start
Starting MySQL.[  OK  ]
[root@rhel64a ~]# mysql -uroot -pxxx
root@localhost[(none)]> select * from information_schema.engines where engine='federated';
+-----------+---------+--------------------------------+--------------+------+------------+
| ENGINE    | SUPPORT | COMMENT                        | TRANSACTIONS | XA   | SAVEPOINTS |
+-----------+---------+--------------------------------+--------------+------+------------+
| FEDERATED | YES     | Federated MySQL storage engine | NO           | NO   | NO         |
+-----------+---------+--------------------------------+--------------+------+------------+

root@localhost[(none)]> use test

-- 创建基于FEDERATED引擎的表federated_engine
root@localhost[test]> CREATE TABLE `federated_engine` (
    ->   `engine` varchar(64) NOT NULL DEFAULT '',
    ->   `support` varchar(8) NOT NULL DEFAULT '',
    ->   `comment` varchar(80) NOT NULL DEFAULT ''
    -> ) ENGINE=FEDERATED DEFAULT CHARSET=utf8
    -> CONNECTION='mysql://remote_user:xxx@192.168.1.131:3406/tempdb/tb_engine';
Query OK, 0 rows affected (0.00 sec)

-- 下面是创建后表格式文件
root@localhost[test]> system ls -hltr /var/lib/mysql/test
total 12K
-rw-rw---- 1 mysql mysql 8.5K Oct 24 08:22 federated_engine.frm

--查询表federated_engine
root@localhost[test]> select * from federated_engine limit 2;
+------------+---------+---------------------------------------+
| engine     | support | comment                               |
+------------+---------+---------------------------------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables |
| CSV        | YES     | CSV storage engine                    |
+------------+---------+---------------------------------------+

--更新表federated_engine
root@localhost[test]> update federated_engine set support='NO' where engine='CSV';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

--查看更新后的结果
root@localhost[test]> select * from federated_engine where engine='CSV';
+--------+---------+--------------------+
| engine | support | comment            |
+--------+---------+--------------------+
| CSV    | NO      | CSV storage engine |
+--------+---------+--------------------+
Salin selepas log masuk

5、创建FEDERATED引擎表的链接方式

scheme: A recognized connection protocol. Only mysql is supported as the scheme value at this point.

链接示例样本:

6、涉及到的相关参考

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1267
29
Tutorial C#
1239
24
iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak Jul 18, 2024 am 05:48 AM

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Jun 05, 2024 pm 02:16 PM

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Apakah Bitget Launchpool? Bagaimana untuk menggunakan Bitget Launchpool? Apakah Bitget Launchpool? Bagaimana untuk menggunakan Bitget Launchpool? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool ialah platform dinamik yang direka untuk semua peminat mata wang kripto. BitgetLaunchpool menonjol dengan produknya yang unik. Di sini, anda boleh mempertaruhkan token anda untuk membuka kunci lebih banyak ganjaran, termasuk airdrop, ganjaran yang tinggi dan kumpulan hadiah yang murah eksklusif untuk peserta awal. Apakah BitgetLaunchpool? BitgetLaunchpool ialah platform mata wang kripto di mana token boleh dipertaruhkan dan diperoleh dengan terma dan syarat yang mesra pengguna. Dengan melabur BGB atau token lain dalam Launchpool, pengguna berpeluang menerima airdrop percuma, pendapatan dan mengambil bahagian dalam kumpulan bonus yang murah hati. Pendapatan daripada aset yang dicagarkan dikira dalam masa T+1 jam dan ganjaran adalah berdasarkan

Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Bagaimana untuk menggunakan fungsi panggil balik pangkalan data di Golang? Jun 03, 2024 pm 02:20 PM

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.

Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Jun 06, 2024 am 11:24 AM

Data JSON boleh disimpan ke dalam pangkalan data MySQL dengan menggunakan perpustakaan gjson atau fungsi json.Unmarshal. Pustaka gjson menyediakan kaedah kemudahan untuk menghuraikan medan JSON dan fungsi json.Unmarshal memerlukan penuding jenis sasaran kepada data JSON unmarshal. Kedua-dua kaedah memerlukan penyediaan pernyataan SQL dan melaksanakan operasi sisipan untuk mengekalkan data ke dalam pangkalan data.

Bagaimana untuk menyambung ke pangkalan data jauh menggunakan Golang? Bagaimana untuk menyambung ke pangkalan data jauh menggunakan Golang? Jun 01, 2024 pm 08:31 PM

Melalui pakej pangkalan data/sql perpustakaan standard Go, anda boleh menyambung ke pangkalan data jauh seperti MySQL, PostgreSQL atau SQLite: buat rentetan sambungan yang mengandungi maklumat sambungan pangkalan data. Gunakan fungsi sql.Open() untuk membuka sambungan pangkalan data. Lakukan operasi pangkalan data seperti pertanyaan SQL dan operasi sisipan. Gunakan tangguh untuk menutup sambungan pangkalan data untuk mengeluarkan sumber.

Sambungan PHP ke pangkalan data yang berbeza: MySQL, PostgreSQL, Oracle dan banyak lagi Sambungan PHP ke pangkalan data yang berbeza: MySQL, PostgreSQL, Oracle dan banyak lagi Jun 01, 2024 pm 03:02 PM

Panduan sambungan pangkalan data PHP: MySQL: Pasang sambungan MySQLi dan buat sambungan (nama pelayan, nama pengguna, kata laluan, nama db). PostgreSQL: Pasang sambungan PgSQL dan buat sambungan (hos, nama db, pengguna, kata laluan). Oracle: Pasang sambungan OracleOCI8 dan buat sambungan (nama pelayan, nama pengguna, kata laluan). Kes praktikal: Dapatkan data MySQL, pertanyaan PostgreSQL, rekod kemas kini OracleOCI8.

See all articles