Ketika kalian menginstal MySQL di VPS, tentu saja kalian bisa langsung menggunakan command apt install mysql-server atau sudo dnf install mariadb atau yum install mariadb-server, namun tentu saja instalasi tersebut masih belum aman karena SQL tersebut bisa diakses siapa saja.
Supaya SQL kalian lebih aman, kalian bisa memberikan keamanan tambahan menggunakan fitur mysql_secure_installation, sehingga jika nantinya akan mengakses SQL, kalian harus memasukkan username dan password terlebih dulu. Untuk cara lebih lanjutnya, kalian bisa mengamankan instalasi SQL di Ubuntu mengikuti tutorial yang ada di artikel ini.
Langsung saja, begini cara untuk menginstal MySQL di VPS dengan aman.
Apabila ini adalah pertama kalinya kalian menggunakan VPS, maka kalian bisa melakukan update paket dulu. Namun jika sebelumnya kalian sudah melakukan update paket, maka kalian tidak harus melakukan update paket.
Untuk melakukan update paket ubuntu, kalian bisa menggunakan command ini
sudo apt update && apt upgrade -yGunakan Cara ini untuk update CentOS 7
sudo yum upgradeApabila kalian menggunakan CentOS 8 atau Rocky Linux 8, maka bisa menggunakan ini
sudo dnf updateSebelum menginstal MySQL, kalian bisa memeriksa versi MySQL yang tersedia di server kalian terlebih dulu, sehingga kalian bisa menyesuaikan versi MySQL mana yang ingin digunakan.
sudo apt-cache policy mysql-serverSetelah menggunakan command diatas, maka hasilnya kurang lebih seperti ini
Version table: 8.0.33-0ubuntu0.22.04.2 500 500 http://sg.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 8.0.28-0ubuntu4 500 500 http://sg.archive.ubuntu.com/ubuntu jammy/main amd64 PackagesApabila hasilnya sama seperti itu, berarti kalian bisa langsung menginstall MySQL 8.0.33 atau MySQL 8.0.28 tanpa harus melakukan update paket ubuntu dulu.
Selanjutnya, untuk menginstall MySQL 8.0.28 atau versi lain yang sudah ada di server kalian, maka bisa menggunakan command berikut
sudo apt install mysql-server=8.0.28-0ubuntu4Apabila kalian ingin menginstall MariaDB, maka kalian bisa menggunakan command ini
sudo apt install mariadb-server -yJika menggunakan CentOS atau Rocky Linux, maka kalian bisa mengubah apt menjadi yum, atau dnf sesuai dengan versi OS yang kalian gunakan.
Karena sekarang MySQL sudah terinstall, maka selanjutnya kalian perlu mengamankan SQL kalian menggunakan fitur mysql_secure_installation, dimana jika fitur ini diaktifkan, maka kalian nantinya perlu menggunakan password untuk membuka SQL melalui command sudo mysql.
Untuk mulai menambahkan keamanan, pertama kalian bisa menjalankan secure installation dulu
sudo mysql_secure_installationSelanjutnya script akan meminta konfirmasi dari kalian apakah kalian akan mengaktifkan plugin validasi dengan password. Klik Y atau y untuk melanjutkan.
VALIDATE PASSWORD COMPONENT can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:Apabila sudah disetujui, maka script akan meminta konfirmasi lagi tentang tingkan keamanan password yang akan digunakan. Disarankan untuk menggunakan opsi nomor 0 atau 1.
There are three levels of password validation policy:
LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:Jika kalian memilih opsi nomor 2, maka password kalian harus mengandung salah satu huruf, nomor, mixed case (huruf besar dan kecil), special characters serta tidak mengandung kata-kata yang mudah diucapkan atau yang sudah ada di Library Ubuntu.
Jika sudah menentukan tingkat keamanan password, maka selanjutnya kalian bisa memasukkan password baru dan menyimpannya.
Apabila kalian mendapatkan pesan error “… Failed! Error: SET PASSWORD has no significance for user“, maka kalian bisa mengubah password user root dulu dengan menjalankan command dibawah ini satu per satu sebelum melakukan mysql_secure_installation.
sudo mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PasswordBaru';quitSelanjutnya jika ada konfirmasi menghapus anonymous user, maka kalian bisa menghapus user tersebut apabila kalian yakin bahwa user pada MySQL hanya kalian, atau bisa mengabaikannya apabila tidak yakin/
By default, a MySQL installation has an anonymous user,allowing anyone to log into MySQL without having to havea user account created for them. This is intended only fortesting, and to make the installation go a bit smoother.You should remove them before moving into a productionenvironment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) :Selanjutnya untuk memastikan bahwa SQL kalian sudah benar-benar aman, maka kalian perlu memeriksa apakah user Root di MySQL kalian sudah menggunakan metode autentikasi mysql_native_password atau belum.
Untuk memeriksanya, kalian bisa menggunakan command ini
sudo mysqlSELECT user,authentication_string,plugin,host FROM mysql.user;mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;+------------------+-------------------------------------+-----------------------+-----------+| user | authentication_string | plugin | host |+------------------+-------------------------------------+-----------------------+-----------+| debian-sys-maint | *PasswordUserDituliskanDisini | mysql_native_password | localhost || mysql.infoschema | *PasswordUserDituliskanDisini | mysql_native_password | localhost || mysql.session | *PasswordUserDituliskanDisini | mysql_native_password | localhost || mysql.sys | *PasswordUserDituliskanDisini | mysql_native_password | localhost || root | *PasswordUserDituliskanDisini | auth_socket | localhost |+------------------+------------------------------------------------------------------------+-----------------------+-----------+5 rows in set (0.00 sec)Apabila hasilnya masih seperti itu, maka kalian perlu melakukan update password pada user Root menggunakan command ini
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PasswordBaru';Setelah mengubah password user Root, pastikan kalian melakukan flush privilege menggunakan command ini di halaman mysql
FLUSH PRIVILEGES;Jika sudah, maka sekarang kalian bisa keluar dari MySQL dengan menggunakan command exit didalam MySQL.
Selanjutnya untuk membuka MySQL, maka kalian harus menggunakan command yang memerlukan password, dan tidak bisa langsung menggunakan comman sudo mysql
sudo mysql -u username_mysql -p
KOMENTAR
Memuat...