Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan basis data MySQL menggunakan ekstensi mysql_fdw
Untuk mengakses basis data yang kompatibel dengan MySQL dari klaster DB Aurora PostgreSQL , Anda dapat menginstal dan menggunakan ekstensi mysql_fdw. Pembungkus data asing ini memungkinkan Anda bekerja dengan basis data RDS for MySQL, Aurora MySQL, MariaDB, dan basis data MySQL lainnya yang kompatibel. Koneksi dari klaster DB Aurora PostgreSQL ke basis data MySQL dienkripsi secara optimal, tergantung pada konfigurasi klien dan server. Namun, Anda dapat menerapkan enkripsi jika diinginkan. Untuk informasi selengkapnya, lihat Menggunakan enkripsi bergerak dengan ekstensi.
Ekstensi mysql_fdw didukung di Amazon Aurora PostgreSQL versi 15.4, 14.9, 13.12, 12.16, dan rilis yang lebih baru. Ekstensi ini mendukung untuk memilih, menyisipkan, memperbarui, dan menghapus dari DB RDS for PostgreSQL ke tabel pada instans basis data yang kompatibel dengan MySQL.
Topik
Mengatur basis data Aurora PostgreSQL untuk menggunakan ekstensi mysql_fdw
Mengatur ekstensi mysql_fdw pada klaster DB Aurora PostgreSQL melibatkan pemuatan ekstensi pada klaster DB , lalu membuat koneksi yang mengarah ke instans DB MySQL. Untuk tugas tersebut, Anda harus memiliki detail instans DB MySQL berikut:
Nama host atau titik akhir. Untuk klaster DB Aurora MySQL , Anda dapat menemukan titik akhir menggunakan Konsol. Pilih tab Konektivitas & keamanan, lalu lihat di bagian "Titik akhir dan port".
Nomor port. Nomor port default untuk MySQL adalah 3306.
Nama basis data. Pengidentifikasi DB.
Anda juga perlu memberikan akses di grup keamanan atau daftar kontrol akses (ACL) untuk port MySQL, 3306. Baik klaster DB Aurora PostgreSQL dan klaster DB Aurora MySQL memerlukan akses ke port 3306. Jika akses tidak dikonfigurasi dengan benar, Anda akan melihat pesan kesalahan yang serupa dengan berikut ini saat mencoba menghubungkan ke tabel yang kompatibel dengan MySQL:
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 akan membuat pemetaan mereka sendiri ke akun pengguna MySQL yang sesuai untuk bekerja dengan instans DB MySQL.
Untuk menggunakan mysql_fdw agar dapat mengakses server basis data MySQL
Hubungkan ke instans DB PostgreSQL Anda menggunakan akun yang memiliki peran
rds_superuser. Jika Anda menerima default saat membuat klaster DB Aurora PostgreSQL , nama pengguna adalahpostgres, dan Anda dapat terhubung menggunakan alat baris perintahpsqlsebagai berikut:psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-passwordInstal ekstensi
mysql_fdwsebagai berikut:postgres=>CREATE EXTENSION mysql_fdw;CREATE EXTENSION
Setelah ekstensi diinstal pada klaster DB Aurora PostgreSQL , Anda dapat mengatur server asing yang memberikan koneksi ke basis data MySQL.
Untuk membuat server asing
Lakukan tugas-tugas ini pada klaster DB Aurora PostgreSQL . Langkah-langkah ini mengasumsikan bahwa Anda terhubung sebagai pengguna dengan hak istimewa rds_superuser, seperti postgres.
Membuat server asing pada klaster DB Aurora PostgreSQL :
postgres=>CREATE SERVERmysql-dbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERBerikan 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 SERVERmysql-dbtouser1;GRANT
Pengguna PostgreSQL membuat dan mengelola koneksi mereka ke basis data MySQL melalui server asing.
Contoh: Bekerja dengan basis data Aurora MySQL dari Aurora PostgreSQL
Misalnya, Anda memiliki tabel sederhana pada instans DB Aurora PostgreSQL . Pengguna Aurora PostgreSQL Anda ingin membuat kueri item (SELECT), INSERT, UPDATE, dan DELETE pada tabel tersebut. Asumsikan bahwa ekstensi mysql_fdw dibuat di instans DB RDS for PostgreSQL, seperti yang dijelaskan dalam prosedur sebelumnya. Setelah terhubung ke instans DB RDS for PostgreSQL sebagai pengguna yang memiliki hak istimewa rds_superuser, Anda dapat melanjutkan langkah-langkah berikut.
Pada instans DB Aurora PostgreSQL , buat server asing:
test=>CREATE SERVERmysqldbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERIzinkan penggunaan kepada pengguna yang tidak memiliki izin
rds_superuser, misalnyauser1:test=>GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;GRANTConnect as
user1, lalu buat pemetaan ke pengguna MySQL:test=>CREATE USER MAPPING FORuser1SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword');CREATE USER MAPPINGBuat tabel asing yang dihubungkan ke tabel MySQL:
test=>CREATE FOREIGN TABLEmytab(a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name '');CREATE FOREIGN TABLEJalankan kueri sederhana pada tabel asing:
test=>SELECT * FROM mytab;a | b ---+------- 1 | apple (1 row)Anda dapat menambahkan, mengubah, dan menghapus data dari tabel MySQL. Sebagai contoh:
test=>INSERT INTO mytab values (2, 'mango');INSERT 0 1Jalankan lagi kueri
SELECTuntuk melihat hasilnya:test=>SELECT * FROM mytab ORDER BY 1;a | b ---+------- 1 | apple 2 | mango (2 rows)
Menggunakan enkripsi bergerak dengan ekstensi
Koneksi ke MySQL dari Aurora PostgreSQL menggunakan enkripsi bergerak (TLS/SSL) secara default. Namun, koneksi akan kembali ke non-enkripsi saat konfigurasi klien dan server berbeda. Anda dapat menerapkan enkripsi untuk semua koneksi yang keluar dengan menentukan opsi REQUIRE SSL pada akun pengguna RDS for MySQL. Pendekatan yang sama juga bekerja untuk akun pengguna MariaDB dan Aurora MySQL.
Untuk akun pengguna MySQL yang dikonfigurasi ke REQUIRE SSL, upaya koneksi akan gagal jika koneksi tidak aman.
Untuk menerapkan enkripsi akun pengguna basis data MySQL yang ada, Anda dapat menggunakan perintah ALTER USER. Sintaksis dapat berbeda-beda, bergantung pada versi MySQL, seperti yang ditunjukkan pada tabel berikut. Untuk informasi selengkapnya, lihat ALTER USER
| MySQL 5.7, MySQL 8.0 | MySQL 5.6 |
|---|---|
|
|
|
Untuk informasi selengkapnya tentang ekstensi mysql_fdw, lihat dokumentasi mysql_fdw