Anda memiliki beberapa opsi untuk men-deploy MySQL sebagai bagian dari project Google Cloud. Anda dapat menggunakan Cloud SQL, Google Cloud Marketplace, atau menginstal MySQL secara manual di Compute Engine.
Cloud SQL menawarkan MySQL sebagai layanan web. Anda dapat menggunakan Cloud SQL untuk menghosting database MySQL di cloud Google, dan mengizinkan Google Cloud menangani tugas administratif seperti replikasi, pengelolaan patch, dan pengelolaan database.
Cloud Marketplace menyediakan antarmuka klik untuk deploy sederhana yang memudahkan penginstalan MySQL ke instance Compute Engine. Cloud Marketplace tidak hanya mencakup penginstalan MySQL mandiri, tetapi juga beberapa development stack web yang menggunakan MySQL, termasuk stack LAMP, stack LEMP, dan cluster Percona MySQL.
Jika lebih suka menginstal dan menyesuaikan MySQL secara manual, Anda dapat menggunakan Compute Engine untuk membuat database MySQL dalam hitungan menit. Dokumen ini memberikan panduan tentang opsi yang harus dipilih dan memandu penginstalan manual database MySQL di Compute Engine.
Cara memilih opsi deployment MySQL yang tepat
Cloud SQL adalah opsi yang tepat jika Anda menginginkan kemudahan agar Google Cloud menangani database backend dan tugas administrasi server. Misalnya, Cloud SQL menyediakan pencadangan otomatis dan pemulihan point-in-time. Selain itu, data Anda direplikasi di beberapa zona untuk ketersediaan dan ketahanan yang lebih besar.
Anda mungkin lebih suka menginstal MySQL di Compute Engine jika memerlukan fitur MySQL yang tidak didukung oleh Cloud SQL. Misalnya, Cloud SQL tidak mendukung fungsi yang ditentukan pengguna atau hak istimewa SUPER. Untuk informasi selengkapnya, lihat FAQ Cloud SQL.
Jika memutuskan untuk menginstal MySQL di Compute Engine, Anda dapat menggunakan Cloud Marketplace untuk men-deploy penginstalan MySQL, atau menginstal MySQL secara manual di instance Compute Engine. Cloud Marketplace menyediakan cara mudah untuk men-deploy MySQL sebagai bagian dari development stack yang lebih besar. Cloud Marketplace menawarkan beberapa opsi untuk penginstalan MySQL, termasuk penginstalan MySQL mandiri, stack LAMP, stack LEMP, Stack Nginx, penginstalan Cluster Percona MySQL, dan beberapa opsi lainnya.
Jika penawaran Cloud Marketplace tidak memenuhi kebutuhan Anda, Anda dapat menginstal MySQL secara manual di instance Compute Engine. Misalnya, Anda mungkin ingin men-deploy MySQL pada image kustom yang telah Anda buat, atau Anda mungkin ingin memiliki kontrol penuh atas proses penginstalan.
Untuk menginstal MySQL secara manual di instance Compute Engine, Anda hanya perlu membuat instance Compute Engine dan menginstal MySQL langsung ke instance.
Untuk informasi selengkapnya tentang setiap opsi, lihat referensi berikut:
- Untuk Cloud SQL, lihat dokumentasi Cloud SQL untuk MySQL.
Untuk Cloud Marketplace, lihat opsi untuk penginstalan MySQL di konsol Google Cloud:
Untuk penginstalan MySQL secara manual pada instance Compute Engine, lihat bagian akhir dokumen ini.
Tujuan
- Membuat instance Compute Engine
- Menginstal MySQL
- Terhubung ke MySQL
Prasyarat
Buat project baru di Konsol Google Cloud. Anda dapat menggunakan project yang sudah ada, tetapi membuat project baru akan mempermudah pembersihan.
Anda dapat menyelesaikan semua langkah dalam dokumen ini menggunakan Konsol Google Cloud. Namun, jika Anda lebih suka menggunakan gcloud CLI, ikuti langkah-langkah berikut untuk mengaktifkan Compute Engine API dan menginstal Google Cloud CLI.
Gunakan konsol Google Cloud untuk mengaktifkan Compute Engine API.
Instal gcloud CLI.
Konfigurasikan ruang kerja Anda untuk membuat perintah tidak terlalu panjang. Ganti nilai project Anda untuk
PROJECT_ID
,REGION
, danZONE
dalam perintah berikut. Untuk mengetahui daftar lengkap zona, lihat Region & zona yang tersedia.gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
Membuat instance Compute Engine dan membuat koneksi SSH
Buat instance Compute Engine untuk MySQL dan buat koneksi SSH ke instance yang baru dibuat. Sistem operasi default-nya adalah Debian versi 10. Jika ingin menggunakan sistem operasi lain untuk tutorial ini, Anda dapat memilih dari opsi yang dijelaskan pada halaman image publik dalam dokumentasi Compute Engine.
Konsol
Membuat instance Compute Engine
Untuk membuat instance Compute Engine di Konsol Google Cloud, lakukan hal berikut:
Di konsol Google Cloud, buka halaman Compute Engine VM instances.
Pilih project yang baru dibuat, lalu klik Continue.
Klik Create instance (New instance jika Anda memiliki instance yang sudah ada). Beri nama instance mysql-test.
Untuk menentukan sistem operasi selain nilai default, di bagian Boot disk, klik Change untuk mengonfigurasi properti boot disk. Di tab Public image, pilih sistem operasi, lalu klik Save.
Agar sesuai dengan praktik terbaik keamanan, buat instance tanpa alamat IP eksternal.
Luaskan Advanced options dan luaskan Networking. Di bagian Network interfaces, luaskan antarmuka default, dan pada menu External IPv4 address, pilih None.
Klik Create.
Menyiapkan terjemahan alamat jaringan (NAT)
Untuk menyiapkan dan mengelola penafsiran alamat jaringan (NAT) dengan Cloud NAT, lakukan hal berikut:
Di Konsol Google Cloud, buka halaman Cloud NAT.
Klik Get started atau Create Cloud NAT gateway.
Untuk Gateway name, masukkan
nat-simple-configuration
.Untuk memilih Cloud Router, di bagian Select Cloud Router, lakukan hal berikut:
- Untuk Network, pilih default.
- Untuk Region, pilih region yang Anda tentukan untuk VM.
Untuk Cloud Router, pilih Create new router.
Pada dialog Create a router yang muncul, berikan Name untuk router—misalnya,
nat-router-simple-configuration
—lalu klik Create.
Klik Advanced configurations.
Di bagian Logging, pilih Translation and errors. Setelan ini mengonfigurasi Cloud NAT untuk mengirim semua log ke Cloud Logging.
Klik Create.
Membuat koneksi SSH ke VM
Untuk membuat koneksi SSH, lakukan langkah-langkah berikut:
Di halaman VM instances, temukan instance VM baru Anda dalam daftar.
Di kolom Connect untuk VM tersebut, klik SSH. Terminal SSH akan terbuka di jendela browser.
gcloud
Untuk membuat instance Compute Engine, gunakan perintah
gcloud compute instances create
. Untuk menentukan sistem operasi, tambahkan parameter--image-family
, diikuti dengan kelompok image atau parameter--image
, diikuti dengan nama image untuk versi image tertentu. Misalnya, untuk menggunakan image terbaru dari kelompok Debian 10, tambahkan--image-family debian-10
. Saat menggunakan gambar publik, project image harus disediakan menggunakan parameter--image-project
.gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
Membuat Cloud Router.
gcloud compute routers create nat-router-simple-configuration \ --network=default
Siapkan dan kelola penafsiran alamat jaringan (NAT) dengan Cloud NAT.
gcloud compute routers nats create nat-simple-configuration \ --router=nat-router-simple-configuration \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --enable-logging
Hubungkan ke instance menggunakan
ssh
.gcloud compute ssh \ --tunnel-through-iap \ mysql-test
Koneksi SSH dibuat menggunakan penerusan TCP yang ditangani oleh Identity-Aware Proxy (IAP).
Menginstal MySQL
Langkah-langkah berikut menjelaskan cara menginstal MySQL di instance Compute Engine.
Debian 10+
Petunjuk ini menginstal MySQL 8 atau 5.7.
Debian versi 10 dan yang lebih baru memuat MariaDB, bukan MySQL sebagai bagian dari sistem pengelolaan paketnya. MariaDB mempertahankan kompatibilitas dengan protokol MySQL, tetapi memiliki set fitur yang berkembang secara independen. Untuk mengetahui detail selengkapnya, lihat MariaDB vs. MySQL.
Untuk menginstal MySQL, download paket rilis dan instal secara manual menggunakan perintah dpkg
.
Instal dependensi
wget
.sudo apt-get install -y wget
Download paket rilis MySQL Community Server.
export DEB_FILE=mysql-apt-config_0.8.20-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
Verifikasi integritas file paket rilis.
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
Keaslian dan integritas file akan diverifikasi jika Anda melihat output berikut.
mysql-apt-config_0.8.20-1_all.deb: OK
Setelah Anda memverifikasi file, tambahkan paket MySQL ke repositori paket lokal.
sudo dpkg -i ${DEB_FILE}
Anda akan diminta untuk mengonfirmasi opsi penginstalan, termasuk versi MySQL.
Dengan opsi menu MySQL Server & Cluster teratas yang dipilih, tekan Return, lalu gunakan tombol panah untuk memilih versi server.
Panduan ini mengharapkan Anda untuk memilih MySQL 8.0 atau 5.7. Tekan Return di keyboard setelah memilih versi.
Setelah puas dengan opsi yang dipilih dalam menu konfigurasi, gunakan tombol panah untuk memilih
Ok
pada menu dan tekan Return pada keyboard.Update cache paket.
sudo apt-get update
Jika Anda menerima error GPG yang mirip dengan The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, impor kunci GPG yang tidak ada dengan perintah yang mengikuti pola ini:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Dalam pesan error demonstratif, kunci publik yang tidak ada adalah
467B942D3A79BD29
; berikan nilai ini dengan opsi--recv-keys
.Ulangi perintah untuk mengupdate cache paket.
Instal MySQL. Proses penginstalan akan memulai layanan MySQL untuk Anda.
sudo apt-get -y install mysql-community-server
Anda akan diminta untuk memberikan beberapa detail penginstalan seperti sandi root.
Debian 9
Petunjuk ini menginstal MySQL 8 atau 5.7.
Secara Default, beberapa versi Debian, seperti Debian 9, menginstal MariaDB sebagai server MySQL default. MariaDB dirancang agar kompatibel dengan MySQL dan dapat dipanggil menggunakan perintah yang sama. Untuk mengetahui detail tentang perbedaan MariaDB dengan MySQL standar, lihat Berpindah dari MySQL ke MariaDB di Debian 9.
Untuk menginstal MySQL, ikuti petunjuk berikut:
Download paket rilis MySQL Community Server.
export DEB_FILE=mysql-apt-config_0.8.17-1_all.deb cd /tmp curl -L --output ${DEB_FILE} \ https://dev.mysql.com/get/${DEB_FILE}
Verifikasi integritas file paket rilis.
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
Keaslian dan integritas file akan diverifikasi jika Anda melihat output berikut.
mysql-apt-config_0.8.17-1_all.deb: OK
Setelah Anda memverifikasi file, tambahkan paket MySQL ke repositori paket lokal.
sudo dpkg -i ${DEB_FILE}
Anda akan diminta untuk mengonfirmasi opsi penginstalan, termasuk versi MySQL.
Dengan opsi menu MySQL Server & Cluster teratas yang dipilih, tekan Return, lalu gunakan tombol panah untuk memilih versi server.
Panduan ini mengharapkan Anda untuk memilih MySQL 8.0 atau 5.7. Tekan Return di keyboard setelah memilih versi.
Setelah puas dengan opsi yang dipilih dalam menu konfigurasi, gunakan tombol panah untuk memilih
Ok
pada menu dan tekan Return pada keyboard.Update cache paket.
sudo apt-get update
Jika Anda menerima error GPG yang mirip dengan The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, impor kunci GPG yang tidak ada dengan perintah yang mengikuti pola ini:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Dalam pesan error demonstratif, kunci publik yang tidak ada adalah
467B942D3A79BD29
; berikan nilai ini dengan opsi--recv-keys
.Ulangi perintah untuk mengupdate cache paket.
Instal MySQL. Proses penginstalan akan memulai layanan MySQL untuk Anda.
sudo apt-get -y install mysql-community-server
Ubuntu
Untuk Ubuntu 1804 dan yang lebih lama, petunjuk ini menginstal MySQL 5.7.
Untuk Ubuntu 2004 dan yang lebih baru, petunjuk ini menginstal MySQL 8.
Update pengelola paket
apt-get
.sudo apt-get update
Instal MySQL. Proses penginstalan akan memulai layanan MySQL untuk Anda.
sudo apt-get -y install mysql-server
Secara default dalam distribusi Ubuntu, mysql mengautentikasi pengguna
root
dengan pluginauth_socket
. Jalankan kueri ini untuk memverifikasi konfigurasi default ini:echo "SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user='root' ;" \ | sudo mysql -t -u root
Output menunjukkan bahwa pengguna
root
yang terhubung darilocalhost
akan menggunakan pluginauth_socket
:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Ubah setelan ini, dan ubah sandi root menjadi sandi yang sulit ditebak:
export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD" echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \ | sudo mysql -u root
Output-nya berisi sandi root baru:
Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
CentOS atau RHEL 7
Petunjuk ini menginstal MySQL 8.
CentOS dan RHEL versi 7 memuat MariaDB, bukan MySQL sebagai bagian dari sistem pengelolaan paketnya. Untuk menginstal MySQL, Anda harus terlebih dahulu mengupdate pengelola paket.
Download paket rilis MySQL Community Server.
export RPM_FILE=mysql80-community-release-el7-4.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Verifikasi integritas file paket rilis.
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
Keaslian dan integritas file akan diverifikasi jika Anda melihat output berikut.
mysql80-community-release-el7-4.noarch.rpm: OK
Update pengelola paket untuk menyertakan MySQL.
sudo rpm -Uvh ${RPM_FILE}
Instal MySQL.
sudo yum -y install mysql-community-server
Mulai server MySQL.
sudo /usr/bin/systemctl start mysqld
Dapatkan sandi root sementara dari log server
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Rocky Linux atau RHEL 8
Petunjuk ini menginstal MySQL 8.
Rocky Linux, CentOS Stream, dan RHEL versi 8 memuat MariaDB, bukan MySQL sebagai bagian dari sistem pengelolaan paketnya. Untuk menginstal MySQL, Anda harus terlebih dahulu mengupdate pengelola paket.
Download paket rilis MySQL Community Server.
export RPM_FILE=mysql80-community-release-el8-2.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Verifikasi integritas file paket rilis.
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
Keaslian dan integritas file akan diverifikasi jika Anda melihat output berikut.
mysql80-community-release-el8-2.noarch.rpm: OK
Update pengelola paket untuk menyertakan MySQL.
sudo rpm -iUvh ${RPM_FILE}
Instal MySQL. Selama penginstalan, nonaktifkan repositori AppStream agar penginstalan akan menggunakan server komunitas.
sudo yum module disable -y mysql sudo yum install -y \ --disablerepo=appstream \ mysql-community-server
Mulai server MySQL.
sudo /usr/bin/systemctl start mysqld
Dapatkan sandi root sementara dari log server
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Meningkatkan keamanan penginstalan MySQL
Untuk meningkatkan keamanan penginstalan MySQL, jalankan perintah mysql_secure_installation
. Jika Anda tidak menyetel sandi selama
proses penginstalan, buat sandi di langkah ini. Untuk mengetahui informasi selengkapnya tentang perintah ini, baca dokumentasi MySQL untuk mysql_secure_installation.
sudo mysql_secure_installation
Terhubung ke MySQL
Langkah-langkah berikut menjelaskan cara terhubung ke MySQL dari instance mysql-test
.
MySQL 8.0
Terhubung ke MySQL menggunakan klien MySQL.
sudo mysql -u root -p
Saat Anda terhubung ke MySQL, perintah akan berubah menjadi
mysql>
.Anda kemudian dapat menjalankan perintah MySQL. Misalnya, perintah berikut menunjukkan thread yang berjalan, termasuk koneksi saat ini.
mysql> SHOW processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ | 5 | event_scheduler | localhost | NULL | Daemon | 1889 | Waiting on empty queue | NULL | | 14 | root | localhost | NULL | Query | 0 | init | show processlist | +----+-----------------+-----------+------+---------+------+------------------------+------------------+ 2 rows in set (0.00 sec)
Anda dapat menggunakan perintah berikut untuk membuat daftar pengguna.
mysql> SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+------------------------------------------------------------------------+ | User | Host | authentication_string | +------------------+-----------+------------------------------------------------------------------------+ | mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | $A$005$,BS{G+*#cVYxb6x40q0aFS5dp2/Kz6u2vennR5qe0eBKVA/6VW5B | +------------------+-----------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec)
Setelah selesai menjalankan perintah, gunakan perintah
exit
untuk keluar dari klien MySQL, lalu gunakanexit
lagi untuk logout dari instance Compute Engine.mysql> exit
Bye
MySQL 5.7
Terhubung ke MySQL menggunakan klien MySQL.
sudo mysql -u root -p
Saat Anda terhubung ke MySQL, perintah akan berubah menjadi
mysql>
.Anda kemudian dapat menjalankan perintah MySQL. Misalnya, perintah berikut menunjukkan thread yang berjalan, termasuk koneksi saat ini.
mysql> SHOW processlist;
+----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 51 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+ 1 row in set (0.00 sec)
Anda dapat menggunakan perintah berikut untuk membuat daftar pengguna.
mysql> SELECT User, Host, authentication_string FROM mysql.user;
+---------------+-----------+-------------------------------------------+ | User | Host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | localhost | *A047B05AAB007B33F8F2BD1FD404661D167D6348 | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +---------------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)
Setelah selesai menjalankan perintah, gunakan perintah
exit
untuk keluar dari klien MySQL, lalu gunakanexit
lagi untuk logout dari instance Compute Engine.mysql> exit
Bye
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus instance
Untuk menghapus instance Compute Engine:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Langkah berikutnya
Sekarang, Anda telah mempelajari cara menginstal server MySQL di Compute Engine. Untuk melihat aplikasi lebih kompleks yang menggunakan MySQL, jelajahi berbagai variasi stack pengembangan di Cloud Marketplace yang menggunakan MySQL.
Jika persyaratan Anda mencakup ketersediaan tinggi dan skalabilitas, pertimbangkan untuk menginstal Cluster MySQL di Compute Engine. Cluster MySQL menyediakan ketersediaan tinggi dan skalabilitas melalui pengelompokan tanpa kendala dan shard otomatis. Cloud Marketplace menyediakan opsi klik untuk men-deploy untuk Percona, sebuah solusi open source untuk pengelompokan MySQL.
Solusi open source lainnya untuk skalabilitas MySQL adalah Vitess, yang telah menyajikan semua traffic database YouTube sejak tahun 2011. Vitess sangat cocok untuk aplikasi yang berjalan di container. Untuk mengetahui informasi lebih lanjut tentang cara menggunakan Vitess di lingkungan dalam container, lihat Menjalankan Vitess di Kubernetes.
Untuk informasi lebih lanjut tentang MySQL, lihat dokumentasi resmi MySQL.
Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.