Dalam posting blog ini, kami akan menunjukkan kepada Anda panduan langkah demi langkah tentang cara menginstal dan mengatur server MySQL baik secara manual di sistem operasi Ubuntu 20.04, maupun dengan menggunakan layanan database terkelola ScaleGrid. Di bagian berikut dari tutorial ini, kami akan membantu Anda melalui setiap langkah untuk berhasil menyiapkan server MySQL Anda sendiri dan mengonfigurasinya dengan benar.
Sedikit tentang MySQL &Ubuntu
MySQL adalah sistem manajemen basis data relasional (DBMS) sumber terbuka. Ini berjalan pada Server Windows dan Linux, dan biasanya diinstal sebagai bagian dari tumpukan LAMP (Linux, Apache, MySQL, PHP/Python/Perl) atau tumpukan LEMP (Linux, Nginx, MySQL, PHP). Ini adalah pilihan yang tepat jika Anda tahu bahwa Anda hanya memerlukan database, karena ini adalah sistem berbasis SQL yang cepat, sederhana, dan dapat diskalakan, serta dianggap sebagai sistem manajemen database relasional yang paling populer.
Meskipun Ubuntu adalah salah satu OS desktop open-source terpopuler di dunia, Ubuntu 20.04 hadir dengan stabilitas kelas perusahaan, ketahanan, dan bahkan keamanan yang lebih baik dalam model hemat biaya.
Cara Menginstal MySQL di Ubuntu 20.04
Sebelum kita masuk ke dalam proses untuk menginstal server MySQL di Ubuntu, ingatlah prasyarat berikut:
- Server Ubuntu 20.04 dengan administratif non-root atau pengguna sudo untuk melakukan langkah otoritatif dan firewall yang dikonfigurasi UFW
- Sistem harus diperbarui dengan menggunakan:
sudo apt update
sudo apt upgrade -y
- Koneksi jaringan yang stabil
Instalasi Baru MySQL di Ubuntu 20.04
Instal MySQL
Untuk menginstal MySQL di Ubuntu 20.04, perintah sederhana (apt install mysql server) dapat dijalankan karena paket instalasi adalah bagian dari repositori resmi Ubuntu 20.04.
apt install mysql-server -y
Mengamankan instalasi server MySQL
Server MySQL memiliki skrip yang dibuat sebelumnya untuk instalasi yang aman. Sebagai praktik umum untuk menjadikan ini instalasi yang aman, jalankan skrip ini setelah perintah instalasi. Apa yang dilakukannya adalah memungkinkan pengguna mengatur kata sandi root untuk MySQL, menonaktifkan aksesibilitas akun root dari luar host lokal, menghapus akun pengguna anonim dan juga menghapus database uji yang dapat diakses oleh pengguna anonim. Skrip ini dapat dipanggil dengan sudo
ini perintah:
sudo mysql_secure_installation
Serangkaian perintah muncul setelah menjalankan skrip instalasi aman. Perintah pertama adalah menyiapkan VALIDATE PASSWORD COMPONENT
. Prompt ini (jika dipilih) akan melakukan validasi pada pembuatan kata sandi pengguna. Ini hanya akan memungkinkan Anda membuat kata sandi jika cocok dengan standar kata sandi di MySQL.
Mengatur kata sandi root
Prompt berikut adalah untuk mengatur kata sandi untuk root. Pengguna harus mengatur kata sandi ini. Jawab semua permintaan berikutnya sebagai "Ya", karena ini adalah praktik terbaik dari perspektif keamanan.
Mengatur SSL untuk instalasi server MySQL
Ada kalanya setelah menginstal MySQL, ketika database server dikonfigurasi pada mesin fisik yang terpisah baik pada jaringan yang sama atau berbeda. Untuk berkomunikasi dengan database seperti itu, komunikasi perlu diamankan dan dienkripsi. Oleh karena itu, sertifikat SSL harus diinstal dan diaktifkan di server database. Protokol SSL menggunakan sepasang kunci untuk mengautentikasi, mengamankan, dan mengelola koneksi aman. Gunakan perintah berikut untuk membuat kunci SSL:
sudo mysql_ssl_rsa_setup --uid=mysql
Direktori default mereka berisi kunci-kunci ini, dan Anda dapat menemukannya dengan menjalankan perintah berikut:
sudo sudo find /var/lib/mysql -name '*.pem' -ls
mysql> \s
Dengan menjalankan perintah di atas dari dalam prompt SQL, Anda dapat mengonfirmasi bahwa SSL aktif dengan mencari baris yang mengatakan SSL: Cipher in use is […]
, seperti yang terlihat pada gambar di bawah ini.
Mengamankan Basis Data Anda
Keamanan database adalah salah satu elemen yang paling penting untuk dipertimbangkan ketika merencanakan untuk menginstal MySQL. Penyerang selalu mencari cara untuk mendapatkan akses pintu belakang ke dalam sistem database dan mendapatkan informasi orang dalam tentang target. Mengubah port default adalah cara mudah untuk meningkatkan keamanan database Anda. Ini dapat diubah dalam file konfigurasi di /etc/mysql/mysql.conf.d/mysqld.cnf
.
Buat Pengguna dan Basis Data MySQL
Dengan menggunakan perintah sederhana ini, Anda dapat membuat akun pengguna database MySQL beserta kata sandinya:
CREATE USER 'Username' @ 'localhost' IDENTIFIED BY 'StrongPassword';
Bidang localhost
di CREATE USER
perintah menunjukkan bahwa pengguna akan terhubung dari server yang sama. Itu bisa diganti dengan alamat IP jika Anda ingin terhubung dari mesin dengan alamat IP tertentu, atau bisa diganti dengan tanda persentase %
jika pengguna ingin mengakses DB dari mana saja.
Jika Anda hanya ingin membuat database, dapat dibuat dengan menggunakan perintah berikut:
CREATE DATABASE databasename;
Setelah Anda membuat pengguna dan database, pengguna akan diberikan izin yang diperlukan untuk database.
Izin dapat berupa jenis apa pun; misalnya, CREATE
, ALTER
, INSERT
, UPDATE
, DELETE
, SELECT
, RELOAD
, dll. Biasanya, pemilik database membutuhkan semua izin dan izin ini dapat diberikan secara independen kepada pengguna. Semua izin ini dapat diberikan sekaligus dengan menggunakan perintah.
GRANT ALL PRIVILEGES ON databasename.tablename TO 'username' @ 'localhost';
Sekali lagi, kata kunci localhost dapat diganti dengan alamat IP atau dengan %
tanda, jika pengguna bermaksud untuk terhubung dari alamat IP tertentu atau sumber lainnya.
Keistimewaan untuk pengguna dapat dilihat melalui perintah SHOW GRANTS
SHOW GRANTS for 'databaseuser'@'localhost';
Semua hak istimewa dapat dicabut untuk pengguna menggunakan perintah:
REVOKE ALL PRIVILEGES ON database.name.* FROM 'database.user'@'localhost';
Di sini Anda dapat melihatnya setelah menjalankan REVOKE
perintah, tidak ada hak istimewa untuk pengguna jason
.
Membuat dan Menghapus Tabel
Sangat mudah untuk menambah atau menghapus tabel dari database Anda. Yang perlu Anda lakukan adalah menggunakan salah satu perintah berikut:
DROP TABLE databasename.tablename
CREATE TABLE databasename.tablename ( column1 datatype,column2 datatype ,column3 datatype);
Parameter kolom menentukan nama, sedangkan parameter tipe data menentukan jenis data yang berisi kolom.
Ada kalanya kunci utama harus ditambahkan ke kolom. Kunci utama memungkinkan Anda mengidentifikasi secara unik setiap entri di tabel Anda. Ini dapat dilakukan dengan menyebutkannya di CREATE TABLE
memerintah. Contoh di bawah ini membuat kolom user_id
dengan kunci utama yang bertambah secara otomatis. Ingatlah bahwa kunci utama harus berisi nilai unik dan tidak boleh berisi nilai nol
Menambahkan atau Menghapus Kolom dalam Tabel
Kolom juga dapat ditambahkan atau dihapus dari tabel database tertentu setelah dibuat.
Untuk melakukannya, ubah database yang ingin Anda ubah dengan menggunakan use database_name
perintah.
Selanjutnya, perintah berikut akan menambah dan menghapus kolom:
ALTER TABLE tablename ADD columnname datatype;
ALTER TABLE tablename DROP columnname;
Menyisipkan Data ke dalam Tabel
Masukkan data ke dalam tabel dengan menggunakan perintah berikut:
INSERT INTO tablename (column1,column2,column3) VALUES ('value1','value2','value3' );
Anda perlu menentukan nama kolom dan nilai yang akan dimasukkan ke dalam setiap kolom secara berurutan. Jika Anda ingin menyisipkan nilai ke setiap kolom tabel, Anda cukup menghilangkan kolom dan mulai menentukan nilai langsung setelah nama tabel:
INSERT INTO tablename VALUES ('value1','value2','value3' );
Update Data in a Table
Gunakan perintah berikut untuk memperbarui data dalam tabel:
UPDATE tablename SET columnname= 'newvalue' WHERE columnname='value'
WHERE
kondisi memberitahu di baris mana data harus diperbarui. Jika kondisi tidak ditentukan, maka data diperbarui di semua baris kolom yang ditentukan.
Pilih Data Dari Tabel
Untuk memilih dan melihat data dari kolom tertentu dalam tabel, gunakan perintah berikut:
SELECT column1,column2 FROM tablename;
Namun, untuk memilih semua kolom dari sebuah tabel, perintah yang digunakan adalah:
SELECT * FROM tablename;
Aktifkan Logging Biner
Mengaktifkan Logging Biner di server database MySQL memungkinkan Anda untuk mencatat kueri yang telah membuat perubahan dalam database. Logging biner adalah fitur yang berguna untuk diaktifkan jika misalnya Anda perlu memecahkan masalah yang disebabkan oleh kueri dalam database.
Untuk mengaktifkan logging biner, tambahkan baris berikut di dalam file konfigurasi di /etc/mysql/mysql.conf.d/mysqld.cnf
.
log-bin=mysql-bin.log
Untuk mengonfirmasi apakah logging biner aktif, jalankan perintah berikut dari shell MySQL:
show variables like '% log_bin%'
Secara default, file log biner disimpan di dalam /var/lib/mysql
direktori di sebagian besar distribusi Linux termasuk Ubuntu.
Menyiapkan Replikasi Asinkron Sederhana
MySQL memiliki dukungan untuk replikasi, yang berguna saat merencanakan pemulihan bencana dan memastikan Anda meminimalkan potensi downtime. MySQL mendukung dua jenis replikasi:
- Replikasi semi-sinkron
- Replikasi asinkron
Dengan replikasi semi-sinkron, ketika sumber melakukan transaksi, semua replika juga akan melakukan transaksi sebelum sumber kembali ke sesi yang melakukan transaksi. Kelemahannya adalah hal itu menyebabkan penundaan besar dalam penyelesaian transaksi karena sistem transaksi yang disebutkan di atas.
Sedangkan, dengan replikasi asinkron, sumber menulis peristiwa ke log binernya dan replika memintanya saat sudah siap. Namun tidak ada jaminan bahwa acara apa pun akan mencapai replika apa pun.
Secara default, MySQL mengaktifkan replikasi asinkron karena waktu pemrosesannya yang cepat. Namun, kelemahan utama adalah jika database sumber gagal, tidak ada cara untuk mengambil data yang belum menyelesaikan transaksi ke DB replika. Di sisi lain, mode replikasi semi-sinkron lebih berfokus pada ketersediaan dan daya tahan data tetapi sangat lambat. Memilih mode replikasi semata-mata bergantung pada kebutuhan spesifik pengguna seputar penyiapan database mereka.
Di dalam file my.cnf untuk server sumber dan server replika, Anda dapat menulis ID server masing-masing sebagai:
server_id=1
server_id=2
Pengguna MySQL khusus dapat dibuat di server sumber, yang akan digunakan oleh replika untuk terhubung ke server sumber.
GRANT REPLICATION SLAVE ON *.* TO ‘masterusername’ @ 'ipaddress of slave server' → IDENTIFIED BY ‘masterpassword’;
Proses replikasi pada server replika dapat dimulai dengan:
mysql> CHANGE MASTER TO -> MASTER_HOST='ip address', -> MASTER_PORT=port number, -> MASTER_USER='username', -> MASTER_PASSWORD='password', -> MASTER_LOG_FILE='', -> MASTER_LOG_POS=4; mysql> start slave;
Petunjuk ini akan mulai membuat server replika sebagai salinan dari server sumber.
Cadangkan/Pulihkan Database MySQL
Menyimpan cadangan database Anda selalu merupakan ide yang baik, Anda tidak pernah tahu kapan Anda mungkin membutuhkannya untuk memastikan data penting tidak hilang. Untuk membuat cadangan database untuk MySQL di OS Ubuntu, cukup jalankan mysqldump
berikut ini:perintah:
sudo mysqldump -u root -p <database.name> > <filename.sql>
Untuk mengembalikan database yang terhapus, database terlebih dahulu dibuat dengan nama yang sama di MySQL. Basis data kemudian dipulihkan dengan perintah:
sudo mysql -u root -p <database.name> < <filename.sql>
Tangkapan layar berikut pertama-tama menghapus test_database kami, lalu membuatnya kembali dan mencoba memulihkan semua datanya dari cadangan yang dibuat sebelumnya. Pengimporan data juga dapat dilakukan dengan mengikuti proses yang sama.
Menyelesaikan menginstal MySQL di Ubuntu
Anda sekarang telah berhasil menyelesaikan langkah-langkah dasar untuk menginstal MySQL di Ubuntu 20.04. Setelah menyelesaikan instalasi, Anda akan memiliki database relasional operasional yang dapat Anda gunakan untuk membangun aplikasi atau situs web Anda berikutnya.
Jika Anda lebih suka seluruh proses ini otomatis dan dikelola oleh para ahli, lihat bagian selanjutnya dari panduan ini.
Menggunakan ScaleGrid untuk Menyiapkan Penerapan MySQL DigitalOcean Anda
Di bagian panduan ini, kami menggunakan solusi hosting MySQL yang terkelola sepenuhnya, karena menawarkan throughput tertinggi dan latensi terendah di DigitalOcean. Pelajari lebih lanjut di artikel Kinerja MySQL DigitalOcean Terbaik untuk membandingkan harga, latensi, dan kinerja throughput ScaleGrid vs. DigitalOcean Managed Databases.
Seluruh proses akan memakan waktu kurang dari 20 menit, dengan hanya beberapa menit di awal untuk menyesuaikan konfigurasi penerapan MySQL Anda, dan beberapa menit di akhir untuk menghubungkan ke aplikasi Anda .
Setelah mendaftar untuk mendapatkan akun percobaan gratis, hal pertama yang akan Anda lakukan adalah memilih MySQL sebagai database Anda, DigitalOcean sebagai cloud Anda, dan Hosting Khusus sebagai rencana Anda untuk memulai proses pembuatan cluster:
Langkah 1. Masukkan Detail Penerapan MySQL
Wizard pembuatan cluster akan membuka langkah pertama di mana Anda dapat menyesuaikan detail dasar penerapan Anda. Masukkan nama untuk cluster Anda menggunakan alfanumerik, dan gunakan nama deskriptif yang unik sehingga Anda dapat dengan mudah mengenali cluster Anda nanti.
Selanjutnya, pilih pusat data DigitalOcean yang ingin Anda gunakan untuk server master Anda dari dropdown wilayah cloud – sebaiknya gunakan wilayah yang sama dengan aplikasi Anda DigitalOcean Droplets untuk hasil terbaik pertunjukan. Kemudian Anda dapat memilih ukuran VM instans DigitalOcean Droplet, dan versi MySQL yang ingin Anda gunakan (semua versi utama didukung). InnoDB Storage Engine adalah default untuk semua penerapan MySQL. Klik berikutnya.
Langkah 2. Aktifkan Replikasi Master-Slave
Pada langkah 2, Anda dapat mengaktifkan replikasi master-slave DigitalOcean MySQL untuk menambahkan ketersediaan tinggi ke penerapan Anda. Replikasi penting untuk menjaga aplikasi Anda tersedia dan online untuk pengguna Anda jika wilayah pusat data DigitalOcean Anda tidak berfungsi. Meskipun DigitalOcean adalah penyedia cloud yang sangat andal dengan waktu aktif 99,99%, pusat data pasti akan mati, jadi mereplikasi data Anda ke lokasi pusat data tambahan memungkinkan Anda meminimalkan risiko kehilangan data dan waktu henti bagi pengguna Anda.
Jika Anda ingin melanjutkan penerapan mandiri, klik berikutnya untuk melanjutkan ke langkah 3 tanpa mengaktifkan konfigurasi master-slave.
Catatan – konfigurasi master-slave hanya tersedia untuk akun berbayar, Anda tidak dapat menyiapkan penerapan set replika saat berada dalam mode uji coba.
Konfigurasikan pengaturan MySQL Master-Slave
Ada beberapa opsi di sini untuk menyesuaikan pengaturan master-slave MySQL Anda. Pertama, Anda dapat memilih antara 2 + 1 Kuorum atau 3 node untuk penerapan Anda. Keduanya menawarkan ketersediaan tinggi, tetapi dalam pengaturan Kuorum 2 + 1, Anda hanya memiliki 2 node pembawa data karena node Kuorum berfungsi sebagai pembuat keputusan dalam peristiwa failover. Anda juga dapat menghubungi dukungan untuk menyesuaikan konfigurasi master-slave Anda untuk menambahkan lebih banyak node ke penerapan Anda.
Selanjutnya, Anda dapat memilih antara replikasi semisinkron dan asinkron. Replikasi semisinkron menjamin setidaknya satu slave telah menerima semua data yang telah dikomit oleh master, memastikan bahwa failover ke slave yang tepat tidak menimbulkan kerugian. Dalam replikasi asinkron, setiap slave menyinkronkan secara asinkron ke master sehingga failover dari master ke slave dapat mengakibatkan failover ke server yang tidak sepenuhnya disinkronkan hingga master saat ini.
Terakhir, sesuaikan lokasi pusat data DigitalOcean yang ingin Anda gunakan untuk node slave Anda. Setelah selesai, klik berikutnya.
Cara Mengatur MySQL di DigitalOceanKlik Untuk Tweet
Langkah 3. Aktifkan SSL
Pada langkah 3, Anda dapat mengaktifkan SSL untuk penerapan Anda. Secara default, server MySQL selalu menginstal dan mengaktifkan konfigurasi SSL, tetapi klien tidak dapat terhubung menggunakan SSL. Klien dapat memilih untuk terhubung dengan atau tanpa SSL karena server mengizinkan kedua jenis koneksi tersebut. Pelajari lebih lanjut tentang mengonfigurasi dan mengelola SSL dalam tutorial MySQL ini.
Langkah 4. Konfigurasi Firewall
Pada langkah terakhir proses pembuatan cluster, masukkan setidaknya satu IP CIDR yang akan diizinkan mengakses penerapan MySQL Anda untuk menyiapkan aturan firewall Anda. Anda dapat menemukan CIDR IP Anda saat ini di bagian atas halaman. Ini dapat disesuaikan nanti di tingkat cluster dan tingkat akun. Setelah Anda memasukkannya, klik Tambah. Masukkan semua CIDR IP yang Anda inginkan, lalu klik berikutnya.
Langkah 5. Tinjau &Buat
Halaman terakhir memberikan ringkasan singkat tentang cluster MySQL DigitalOcean baru Anda. Tinjau semua detail dan klik tombol Sebelumnya untuk kembali ke langkah sebelumnya dan mengubah konfigurasi Anda. Setelah Anda siap, klik Buat untuk meningkatkan cluster Anda.
Dan hanya itu! Penerapan Anda sekarang sedang disediakan! Ini membutuhkan waktu sekitar 15 menit, jadi sambil menunggu, Anda dapat membiasakan diri dengan alat manajemen untuk MySQL di konsol – pencadangan, pemulihan, penskalaan, peringatan, analisis kueri, dll.
Hubungkan &Migrasi
Setelah status cluster berubah dari “Membuat” menjadi “Menjalankan”, Anda dapat menghubungkan penerapan Anda. Ada beberapa cara berbeda untuk melakukan ini – melalui string koneksi ke aplikasi Anda, melalui baris perintah, melalui WordPress, melalui MySQL Workbench atau alat GUI populer lainnya. Semua detail koneksi Anda tersedia di bagian bawah tab Ikhtisar di halaman detail cluster Anda.
Kunjungi tab teratas untuk membuat database MySQL dan membuat pengguna database MySQL. Ini dapat diakses dan dikelola kapan saja dari konsol ScaleGrid.
Migrasikan instalasi MySQL Anda yang ada dalam hitungan menit
Migrasi juga merupakan proses otomatis yang hanya memerlukan beberapa detail dari penerapan yang ada. Klik tombol Impor Data pada tab Ikhtisar Anda, dan masukkan Nama Server, Port, Nama Basis Data, Nama Pengguna, dan Kata Sandi Anda. Lihat dokumen Migrasi MySQL kami untuk detail lebih lanjut, dan opsi migrasi tambahan.
|
Menjalankan Server MySQL Anda di DigitalOcean
Setelah Anda aktif dan berjalan, penerapan MySQL Anda dapat beroperasi secara virtual dengan pilot otomatis. Karena ScaleGrid adalah layanan yang terkelola sepenuhnya, kami menangani semua administrasi harian dan pemeliharaan database MySQL Anda, sehingga Anda dapat fokus dalam membangun aplikasi Anda. Jika ada sesuatu yang memerlukan perhatian Anda, seperti ruang disk yang hampir habis, kami akan mengirimkan pemberitahuan agar Anda dapat masuk dan melihat apakah Anda siap untuk meningkatkan klaster.
Anda juga dapat terhubung dengan pakar MySQL kami kapan saja melalui dukungan 24/7 kami untuk membantu Anda menyiapkan dan memecahkan masalah penerapan Anda.