Migrate a MySQL Database to Google Cloud SQL

Migrate a MySQL Database to Google Cloud SQL

Challenge scenario

Blog WordPress kita berjalan pada server yang tidak lagi sesuai. Sebagai bagian pertama dari latihan migrasi lengkap, kita sedang memigrasikan database yang di-host secara lokal yang digunakan oleh blog ke Cloud SQL.

Instalasi WordPress yang sudah ada terpasang di direktori /var/www/html/wordpress pada instans yang disebut blog yang sudah berjalan di lab. kita dapat mengakses blog dengan membuka peramban web dan mengarahkan ke alamat IP eksternal instans blog.

Database yang sudah ada untuk blog disediakan oleh MySQL yang berjalan pada server yang sama. Database MySQL yang sudah ada disebut wordpress dan pengguna disebut blogadmin dengan kata sandi Password1*, yang memberikan akses penuh ke database tersebut.

Buat instance SQL Database.

export ZONE=<SET ZONE> //us-central1-a
gcloud sql instances create wordpress --tier=db-n1-standard-1 --activation-policy=ALWAYS --gce-zone $ZONE

set password SQL Database nya .

gcloud sql users set-password --host % root --instance wordpress --password Password1*

authorize IP EXTERNAL dari Instance Blog ke Instance SQL wordpress.

export ADDRESS=<IP EXTERNAL DARI COMPUTE BLOG> //104.196.5.158/32
gcloud sql instances patch wordpress --authorized-networks $ADDRESS --quiet

SSH ke instance Blog yang sudah disediakan lab, di dalam instance Blog remote ke Instance SQL wordpress

gcloud compute ssh blog
MYSQLIP=$(gcloud sql instances describe wordpress --format="value(ipAddresses.ipAddress)")
mysql --host=$MYSQLIP \
    --user=root --password

buat database dengan nama wordpress.

CREATE DATABASE wordpress;
CREATE USER 'blogadmin'@'%' IDENTIFIED BY 'Password1*';
GRANT ALL PRIVILEGES ON wordpress.* TO 'blogadmin'@'%';
FLUSH PRIVILEGES;
exit

selanjutnya buat dump database wordpress dan export ke Instance Database wordpress.

sudo mysqldump -u root -pPassword1* wordpress > wordpress_backup.sql

mysql --host=$MYSQLIP --user=root -pPassword1* --verbose wordpress < wordpress_backup.sql

selanjutnya restart service apache, dan configurasi wp-config.php

sudo service apache2 restart

cd /var/www/html/wordpress

sudo nano wp-config.php

replace IP HOST MYSQL dari localhost ke EXTERNAL IP SQL.