Membuat database MySQL Terkelola dengan Cloud SQL

Google Cloud SQL adalah layanan database terkelola sepenuhnya yang memudahkan penyiapan, pemeliharaan, pengelolaan, dan pengaturan database MySQL relasional di cloud.

Di lab ini, kita akan membuat instance Cloud SQL baru yang kosong, menghubungkannya menggunakan antarmuka command line MySQL, dan membuat database baru yang kosong.

Yang akan Anda pelajari

  • Cara mengakses UI web Cloud SQL di Konsol Google Cloud.
  • Cara membuat instance Cloud SQL menggunakan Konsol Google Cloud.
  • Cara menyetel sandi root menggunakan Konsol Google Cloud.
  • Cara terhubung ke instance Cloud SQL melalui Cloud Shell.
  • Cara menghapus instance Cloud SQL menggunakan Konsol Google Cloud.

Yang Anda butuhkan

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform dan Firebase?

Pemula Menengah Mahir

Penyiapan lingkungan mandiri

Jika belum memiliki Akun Google (Gmail atau Google Apps), Anda harus membuatnya. Login ke Google Cloud Platform console (console.cloud.google.com) dan buat project baru:

Screenshot dari 2016-02-10 12:45:26.png

Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource Google Cloud.

Menjalankan melalui codelab ini tidak akan menghabiskan biaya lebih dari beberapa dolar, tetapi bisa lebih jika Anda memutuskan untuk menggunakan lebih banyak resource atau jika Anda membiarkannya berjalan (lihat bagian "pembersihan" di akhir dokumen ini).

Pengguna baru Google Cloud Platform memenuhi syarat untuk mendapatkan uji coba gratis senilai$300.

Di Konsol Google Cloud, klik ikon Menu di kiri atas layar:

Scroll ke bawah dan pilih SQL di subbagian Penyimpanan:

Sekarang Anda akan melihat UI web Cloud SQL, dan jika Anda menggunakan project yang saat ini tidak memiliki instance Cloud SQL, Anda akan melihat kotak dialog yang mengajak Anda untuk membuat instance Cloud SQL baru.

Jika Anda menggunakan project yang sudah memiliki satu atau beberapa instance Cloud SQL, Anda akan melihat daftar instance tersebut:

Dengan asumsi project Anda tidak memiliki instance Cloud SQL, tekan tombol Create instance untuk membuatnya:

Jika Anda menggunakan project yang sudah memiliki satu atau beberapa instance Cloud SQL, tekan tombol Create instance di layar Instances seperti yang ditunjukkan di sini:

Dalam kedua kasus tersebut, Anda akan melihat halaman Pilih jenis instance. Dalam codelab ini, kita akan membuat instance Cloud SQL Generasi Kedua. Klik Choose Second Generation.

2ndGenCloudSQLCreate.png

Tindakan ini akan membuka halaman Create an instance. Di sini, Anda harus menentukan nama untuk instance Anda. Nama ini harus unik dalam project Anda, tetapi tidak di seluruh project, sehingga Anda dapat menggunakan nama instance codelab-0 yang sama seperti yang ditunjukkan dalam contoh ini, dengan asumsi Anda tidak memiliki instance Cloud SQL lain dalam project Anda. Masukkan "codelab-0" ke dalam kotak Instance ID. Untuk tujuan codelab ini, konfigurasi lainnya dapat dibiarkan dengan nilai defaultnya.

Perhatikan bahwa saat Anda menghapus instance Cloud SQL, Anda tidak dapat menggunakan kembali nama instance tersebut hingga satu minggu. Jika Anda berencana menggunakan project ini untuk lebih dari sekadar eksperimen, pastikan untuk memilih nama instance yang berbeda dari nama instance yang mungkin ingin Anda gunakan untuk pekerjaan nyata, atau Anda mungkin tidak dapat menggunakan kembali nama instance tersebut selama jangka waktu tertentu.

2ndGenCloudSQLCreate_2.png

Scroll ke bagian bawah halaman, lalu tekan Buat.

2ndGenCloudSQLCreate_3.png

Anda akan diarahkan ke halaman Instances, tempat Anda akan melihat instance baru dengan spinner di sebelah kiri, yang menunjukkan bahwa instance tersebut masih dibuat:

Dalam dua atau tiga menit, instance akan tersedia, dan tanda centang hijau akan menggantikan indikator lingkaran berputar biru. Pastikan untuk memuat ulang halaman dari waktu ke waktu:

Instance Cloud SQL Anda kini siap digunakan.

Klik nama instance Anda untuk membuka halaman detail instance, lalu klik Kontrol Akses:

Di tab Access Control, tekan Users:

Di tab Pengguna, klik Ubah sandi root:

Masukkan sandi baru di halaman Ubah sandi, lalu tekan OKE:

Aktifkan Google Cloud Shell dengan menekan tombol perintah di Konsol Google Cloud:

Jika ini pertama kalinya Anda menggunakan Google Cloud Shell untuk project ini, Anda akan melihat layar Google Cloud Shell. Tekan Start Cloud Shell

cloudShellWelcome.png

Cloud Shell baru akan ditampilkan di bagian bawah Konsol Google Cloud, baik setelah Anda menekan Start Cloud Shell di layar Google Cloud Shell jika ini adalah pertama kalinya digunakan dengan project ini, atau segera setelah menekan tombol Activate Google Cloud Shell jika sudah pernah digunakan sebelumnya.

Screen Shot 2016-03-07 at 12.18.01.png

Hubungkan ke instance Cloud SQL Anda menggunakan perintah gcloud sql yang ditampilkan di bawah, tetapi ganti "codelab-0" dengan nama instance Anda, jika berbeda:

gcloud sql connect codelab-0 --user=root

Anda akan melihat:

$ gcloud sql connect codelab-0 --user=root
Whitelisting your IP for incoming connection for 1 minute...done.
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11302
Server version: 5.6.29-google-log (Google)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Seperti yang ditunjukkan di sini, Anda akan diminta untuk memasukkan sandi yang Anda tetapkan di langkah sebelumnya. Sekarang Anda memiliki perintah MySQL yang berfungsi penuh, yang login sebagai "root". Anda dapat menggunakannya untuk memasukkan pernyataan SQL, seperti pernyataan ini untuk membuat database baru bernama "codelab":

mysql> CREATE DATABASE codelab;
Query OK, 1 row affected (0.00 sec)

Jika Kueri kembali dengan OK, instance Anda berfungsi. Mari kita keluar dan memuat beberapa data sampel untuk menjalankan beberapa kueri nyata.

Ketik ‘exit;' lalu tekan enter untuk keluar dari perintah mysql.

Kita akan memuat kumpulan data contoh karyawan yang dapat Anda temukan dalam dokumentasi resmi MySQL.

Pertama, kita perlu mendownload skrip dan data:

$ wget https://codeload.github.com/datacharmer/test_db/zip/master -O sampledb.zip
$ unzip sampledb.zip && cd test_db-master

Kedua, kita perlu membuat database dan tabel, lalu memuat data. Sekali lagi, ganti codelab-0 dengan nama instance Anda, jika berbeda:

$ gcloud sql connect codelab-0 --user=root < employees.sql

Sekarang kita dapat membuat kueri data. Anda dapat menemukan beberapa contoh kueri di bawah. Anda juga dapat membuat beberapa kueri sendiri. Untuk memahami skema db, lihat file employees.sql. Login terlebih dahulu ke prompt sql dan beralih ke database karyawan. Sekali lagi, ganti codelab-0 dengan nama instance Anda, jika berbeda:

$ gcloud sql connect codelab-0 --user=root
mysql> USE employees;
Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT avg(s.salary) avg_salary_by_hire_year, YEAR(e.hire_date) FROM employees e, salaries s WHERE e.emp_no = s.emp_no GROUP BY YEAR(e.hire_date);
+-------------------------+-------------------+
| avg_salary_by_hire_year | YEAR(e.hire_date)|
+-------------------------+-------------------+
|              66966.7550 |              1985 |
|              66187.3453 |              1986 |
...
16 rows in set (2.70 sec)

mysql> SELECT de.dept_no, sum(s.salary) sum_salaries_per_department FROM employees e, salaries s, dept_emp de WHERE e.emp_no = de.emp_no AND e.emp_no = s.emp_no GROUP BY de.dept_no;
+---------+-----------------------------+
| dept_no | sum_salaries_per_department|
+---------+-----------------------------+
| d001    |                 13725425266 |
| d002    |                 11650834677 |
...
+---------+-----------------------------+
9 rows in set (4.22 sec)

mysql> exit;

Setelah selesai mengkueri set data karyawan sampel, gunakan perintah'exit' untuk keluar dari perintah mysql.

Langkah ini opsional. Jika ingin terus bereksperimen dengan instance Cloud SQL, Anda tidak perlu menghapusnya saat ini. Namun, project yang Anda gunakan akan terus ditagih untuk instance tersebut. Jika Anda tidak lagi memerlukan instance ini, Anda harus menghapusnya saat ini untuk menghindari tagihan ini.

Perhatikan bahwa saat Anda menghapus instance Cloud SQL, Anda tidak dapat menggunakan kembali nama instance tersebut hingga satu minggu.

Anda memiliki dua opsi untuk menghapus instance Cloud SQL.

1) Gunakan gcloud di lingkungan Cloud Shell Anda. Sekali lagi, ganti codelab-0 dengan nama instance Anda, jika berbeda:

$ gcloud sql instances delete codelab-0
All of the instance data will be lost when the instance is deleted.

Do you want to continue (Y/n)?  Y

Deleting Cloud SQL instance...done.
Deleted
$

atau

2) Kembali ke halaman instance Cloud SQL dengan mengklik SQL di sudut kiri atas:

Buka menu drop-down di samping instance yang ingin Anda hapus, lalu pilih "Hapus":

Penghapusan instance bersifat permanen. Data dari instance tersebut tidak dapat dipulihkan. Untuk membantu mencegah penghapusan instance yang salah secara tidak sengaja, Anda harus mengonfirmasi penghapusan dengan memasukkan nama instance dalam dialog konfirmasi:

Masukkan nama instance Anda, lalu tekan Hapus.

Anda telah membuat instance Cloud SQL baru, mengonfigurasi sandi root, membuat database kosong, dan (opsional) menghapus instance Cloud SQL.

Yang telah kita bahas

  • Membuat instance Cloud SQL melalui Konsol Google Cloud.
  • Mengatur sandi root SQL melalui Konsol Google Cloud.
  • Menghubungkan ke database menggunakan klien mysql.
  • Membuat database MySQL baru melalui perintah mysql.
  • Menghapus instance Cloud SQL.

Pelajari Lebih Lanjut