Bekerja dengan SQL database Saya dengan menggunakan ekstensi mysql_fdw - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan SQL database Saya dengan menggunakan ekstensi mysql_fdw

Untuk mengakses database My SQL -compatible dari , Anda dapat menginstal dan menggunakan ekstensi. mysql_fdw Pembungkus data asing ini memungkinkan Anda bekerja dengan RDS untuk MySQL, Aurora My, MariaDBSQL, dan database My -compatible lainnya. SQL Koneksi dari cluster Aurora Postgre SQL DB RDS ke SQL database Saya dienkripsi berdasarkan upaya terbaik, tergantung pada konfigurasi klien dan server. Namun, Anda dapat menerapkan enkripsi jika diinginkan. Untuk informasi selengkapnya, lihat Menggunakan enkripsi bergerak dengan ekstensi.

mysql_fdwEkstensi ini didukung di Amazon Aurora Postgre SQL versi 15.4, 14.9, 13.12, 12.16, versi 14.2, 13.6, dan rilis yang lebih tinggi. Ini mendukung memilih, menyisipkan, memperbarui, dan menghapus dari RDS untuk Postgre SQL DB ke tabel pada instance database My -kompatibel. SQL

Menyiapkan Aurora Postgre Anda untuk Postgre DB SQL RDS untuk menggunakan

Menyiapkan mysql_fdw ekstensi pada cluster Aurora Postgre SQL DB Anda DB cluster DB Anda dan kemudian membuat titik koneksi ke Saya. SQL Untuk tugas itu, Anda harus memiliki detail berikut tentang instance My SQL DB:

  • Nama host atau titik akhir. Untuk cluster Aurora My SQL DB RDS , Anda dapat menemukan titik akhir dengan menggunakan Konsol. Pilih tab Konektivitas & keamanan, lalu lihat di bagian "Titik akhir dan port".

  • Nomor port. Nomor port default untuk My SQL adalah 3306.

  • Nama basis data. Pengidentifikasi DB.

Anda juga perlu menyediakan akses pada grup keamanan atau daftar kontrol akses (ACL) untuk SQL port Saya, 3306. Baik cluster Aurora Postgre SQL DB dan cluster Aurora My DB untuk instance Postgre SQL DB . Jika akses tidak dikonfigurasi dengan benar, saat Anda mencoba menyambung ke tabel yang SQL kompatibel dengan saya, Anda akan melihat pesan kesalahan yang mirip dengan berikut ini:

ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname.aws-region.rds.amazonaws.com:3306' (110)

Dalam prosedur berikut, Anda (sebagai akun rds_superuser) akan membuat server asing. Kemudian, Anda akan memberikan akses ke server asing untuk pengguna tertentu. Pengguna ini kemudian membuat pemetaan mereka sendiri ke akun SQL pengguna Saya yang sesuai untuk bekerja dengan instans SQL DB Saya.

Untuk menggunakan mysql_fdw untuk mengakses server database Saya SQL
  1. Connect ke instans Postgre SQL DB Anda menggunakan akun yang memiliki peran. rds_superuser Jika Anda menerima default saat membuat cluster Aurora Postgre SQL DB Postgre DB, nama penggunanya adalahpostgres, dan Anda dapat terhubung menggunakan alat baris perintah sebagai berikut: SQL psql

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-password
  2. Instal ekstensi mysql_fdw sebagai berikut:

    postgres=> CREATE EXTENSION mysql_fdw; CREATE EXTENSION

Setelah ekstensi diinstal pada cluster Aurora Postgre SQL DB Anda , Anda mengatur server asing yang menyediakan koneksi ke database Saya. SQL

Untuk membuat server asing

Lakukan tugas-tugas ini pada cluster Aurora Postgre SQL DB instance Postgre DB. SQL Langkah-langkah ini mengasumsikan bahwa Anda terhubung sebagai pengguna dengan hak istimewa rds_superuser, seperti postgres.

  1. Buat server asing di cluster Aurora Postgre SQL DB instance Postgre DB: SQL

    postgres=> CREATE SERVER mysql-db FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Berikan akses pengguna yang sesuai ke server asing. Pengguna yang diberi akses harus pengguna non-administrator, yaitu pengguna tanpa peran rds_superuser.

    postgres=> GRANT USAGE ON FOREIGN SERVER mysql-db to user1; GRANT

SQLPengguna Postgre membuat dan mengelola koneksi mereka sendiri ke SQL database Saya melalui server asing.

Misalkan Anda memiliki tabel sederhana pada instance Aurora Postgre SQL DB instance Postgre DB. SQL Aurora Postgre Anda SQL ingin menanyakan (SELECT),, INSERTUPDATE, dan item di tabel itu. DELETE Asumsikan bahwa mysql_fdw ekstensi dibuat pada instans Postgre SQL DB AndaRDS, seperti yang dijelaskan dalam prosedur sebelumnya. Setelah Anda terhubung ke instans RDS for Postgre SQL DB sebagai pengguna yang memiliki rds_superuser hak istimewa, Anda dapat melanjutkan dengan langkah-langkah berikut.

  1. Pada instans Aurora Postgre SQL DB RDS untuk instance , buat server asing:

    test=> CREATE SERVER mysqldb FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Izinkan penggunaan kepada pengguna yang tidak memiliki izin rds_superuser, misalnya user1:

    test=> GRANT USAGE ON FOREIGN SERVER mysqldb TO user1; GRANT
  3. Connect sebagai user1, lalu buat pemetaan ke SQL pengguna Saya:

    test=> CREATE USER MAPPING FOR user1 SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword'); CREATE USER MAPPING
  4. Buat tabel asing yang ditautkan ke SQL tabel Saya:

    test=> CREATE FOREIGN TABLE mytab (a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name ''); CREATE FOREIGN TABLE
  5. Jalankan kueri sederhana pada tabel asing:

    test=> SELECT * FROM mytab; a | b ---+------- 1 | apple (1 row)
  6. Anda dapat menambahkan, mengubah, dan menghapus data dari SQL tabel Saya. Sebagai contoh:

    test=> INSERT INTO mytab values (2, 'mango'); INSERT 0 1

    Jalankan lagi kueri SELECT untuk melihat hasilnya:

    test=> SELECT * FROM mytab ORDER BY 1; a | b ---+------- 1 | apple 2 | mango (2 rows)

Menggunakan enkripsi bergerak dengan ekstensi

Koneksi ke My SQL dari Aurora Postgre SQL menggunakan enkripsi dalam transit (/) secara default. TLS SSL Namun, koneksi akan kembali ke non-enkripsi saat konfigurasi klien dan server berbeda. Anda dapat menerapkan enkripsi untuk semua koneksi keluar dengan menentukan REQUIRE SSL opsi pada RDS untuk akun pengguna SayaSQL. Pendekatan yang sama ini juga berfungsi untuk akun pengguna MariaDB dan Aurora MySQL.

Untuk akun SQL pengguna saya yang dikonfigurasiREQUIRE SSL, upaya koneksi gagal jika koneksi aman tidak dapat dibuat.

Untuk menerapkan enkripsi untuk akun pengguna SQL database Saya yang ada, Anda dapat menggunakan ALTER USER perintah. Sintaksnya bervariasi, tergantung pada SQL versi Saya, seperti yang ditunjukkan pada tabel berikut. Untuk informasi lebih lanjut, lihat ALTERUSERdi Manual SQL Referensi Saya.

SQL5.7 saya, 8.0 saya SQL SQL5.6 saya

ALTER USER 'user'@'%' REQUIRE SSL;

GRANT USAGE ON *.* to 'user'@'%' REQUIRE SSL;

Untuk informasi selengkapnya tentang ekstensi mysql_fdw, lihat dokumentasi mysql_fdw.