MariaDB dikembangkan sebagai garpu perangkat lunak MySQL pada tahun 2009 sebagai tanggapan atas akuisisi Oracle atas MySQL. MariaDB bermaksud untuk tetap menjadi perangkat lunak bebas dan sumber terbuka di bawah Lisensi Publik Umum GNU. Ini adalah bagian dari sebagian besar penawaran cloud dan default di sebagian besar distribusi Linux.
Dalam panduan ini kita akan mempelajari cara menginstal dan mengkonfigurasi MariaDB di Debian 11.
Pos Terkait
- Cara menginstal Mysql 8 di Rocky Linux/Centos 8
- Cara menginstal dan Mengonfigurasi Mariadb 10 di Ubuntu 20.04
- Cara menginstal dan Mengonfigurasi Mariadb di Fedora 35
- Cara Menginstal dan Mengatur mysql 8 di Ubuntu 20.04
Prasyarat
Untuk mengikuti, pastikan Anda memiliki:
- Server Debian 11 terbaru
- Akses root ke server atau pengguna dengan akses Sudo
- Akses ke internet dari server
Daftar isi
- Perbarui sistem
- Menginstal Mariadb
- Mengonfigurasi Mariadb
- Opsional:Menyesuaikan Otentikasi dan Hak Istimewa Pengguna
- Menguji MariaDB
1. Perbarui sistem
Sebelum melanjutkan, izinkan kami memastikan bahwa server Debian sudah diperbarui. Pertama-tama perbarui repo kemudian lakukan peningkatan sistem untuk memastikan semua paket yang diinstal sudah diperbarui:
Di terminal Anda, ketik ini. -y
opsi di apt upgrade
adalah untuk memastikan bahwa sistem tidak berhenti untuk menerima peningkatan.
$ sudo apt update
$ sudo apt upgrade -y
2. Menginstal mariadb
Mariadb ditemukan di repo default untuk debian. Gunakan perintah ini untuk menginstal server database:
sudo apt install -y mariadb-server
Mariadb akan dimulai secara default.
$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-11-12 07:31:38 UTC; 32s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 32218 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 32219 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 32221 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_>
Process: 32328 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 32330 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 32296 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 14 (limit: 4626)
Memory: 76.9M
CPU: 703ms
CGroup: /system.slice/mariadb.service
└─32296 /usr/sbin/mariadbd
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: mysql
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: performance_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Phase 6/7: Checking and upgrading tables
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Processing databases
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: information_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: performance_schema
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32335]: OK
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32945]: Checking for insecure root accounts.
Nov 12 07:31:40 ip-10-2-40-39 /etc/mysql/debian-start[32952]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
3. Mengonfigurasi MariaDB
Untuk instalasi MariaDB baru, langkah selanjutnya adalah menjalankan skrip keamanan yang disertakan. Skrip ini mengubah beberapa opsi default yang kurang aman. Kami akan menggunakannya untuk memblokir root jarak jauh login dan untuk menghapus pengguna database yang tidak digunakan.
Jalankan skrip keamanan:
sudo mysql_secure_installation
Ini akan membawa Anda melalui serangkaian petunjuk di mana Anda dapat membuat beberapa perubahan pada opsi keamanan instalasi MariaDB Anda. Perintah pertama akan meminta Anda untuk memasukkan database saat ini root kata sandi. Karena kami belum menyiapkannya, tekan ENTER
untuk menunjukkan “tidak ada”.
Perintah berikutnya menanyakan apakah Anda ingin menyiapkan database root kata sandi. Ketik N
lalu tekan ENTER
. Di Debian, root akun untuk MariaDB terkait erat dengan pemeliharaan sistem otomatis, jadi kami tidak boleh mengubah metode autentikasi yang dikonfigurasi untuk akun tersebut. Melakukannya akan memungkinkan pembaruan paket untuk merusak sistem database dengan menghapus akses ke akun administratif. Nanti, kami akan membahas cara mengatur akun administratif tambahan untuk akses kata sandi jika otentikasi soket tidak sesuai untuk kasus penggunaan Anda.
Dari sana, Anda dapat menekan Y
lalu ENTER
untuk menerima default untuk semua pertanyaan berikutnya. Ini akan menghapus beberapa pengguna anonim dan database pengujian, menonaktifkan root jarak jauh login, dan muat aturan baru ini sehingga MariaDB segera mengikuti perubahan yang Anda buat.
Ini adalah output server saya
$ sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n]
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
4. Opsional:Menyesuaikan Otentikasi dan Hak Istimewa Pengguna
Dalam sistem Debian yang menjalankan MariaDB 10, root Pengguna MariaDB disetel untuk mengautentikasi menggunakan unix_socket
plugin secara default daripada dengan kata sandi. Hal ini memungkinkan keamanan dan kegunaan yang lebih besar dalam banyak kasus, tetapi juga dapat memperumit banyak hal saat Anda perlu mengizinkan hak administratif program eksternal (mis., phpMyAdmin).
Karena server menggunakan root akun untuk tugas-tugas seperti rotasi log dan memulai serta menghentikan server, sebaiknya jangan mengubah root detail otentikasi akun. Mengubah kredensial di /etc/mysql/debian.cnf
file konfigurasi mungkin berfungsi pada awalnya, tetapi pembaruan paket berpotensi menimpa perubahan itu. Alih-alih mengubah root akun, pengelola paket merekomendasikan untuk membuat akun administratif terpisah untuk akses berbasis sandi.
Untuk melakukannya, kami akan membuat akun baru bernama admin
dengan kemampuan yang sama seperti root akun, tetapi dikonfigurasi untuk otentikasi kata sandi. Untuk melakukannya, buka perintah MariaDB dari terminal Anda, lalu buat pengguna baru dengan root hak istimewa dan akses berbasis kata sandi. Ubah nama pengguna dan sandi agar sesuai dengan preferensi Anda:
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 56
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'T*[email protected]^RDibAc%puz' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
5. Menguji MariaDB
Sekarang mariadb sudah siap dan berjalan, kita perlu mengonfirmasi bahwa mariadb dapat menerima koneksi.
Untuk menguji, sambungkan ke mariadb dengan pengguna root – mysql -h 127.0.0.1 -u root -p
Keluaran:
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 54
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Periksa versi mariadb:
MariaDB [(none)]> SELECT VERSION();
+---------------------------+
| VERSION() |
+---------------------------+
| 10.5.12-MariaDB-0+deb11u1 |
+---------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]>
Untuk pemeriksaan tambahan, Anda dapat mencoba menyambungkan ke database menggunakan mysqladmin
alat, yang merupakan klien yang memungkinkan Anda menjalankan perintah administratif. Misalnya, perintah ini mengatakan untuk terhubung ke MariaDB sebagai root dan kembalikan versinya menggunakan soket Unix:
sudo mysqladmin version
Anda akan menerima output yang mirip dengan ini:
$ sudo mysqladmin version
mysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-0+deb11u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 1 hour 38 min 27 sec
Threads: 1 Questions: 490 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.082
Karena Anda mengonfigurasi pengguna administratif terpisah dengan otentikasi kata sandi, Anda dapat melakukan operasi yang sama dengan mengetik:
mysqladmin -u admin -p version
Ini berarti MariaDB aktif dan berjalan dan pengguna Anda berhasil mengautentikasi.
Kesimpulan
Dalam panduan ini Anda menginstal MariaDB untuk bertindak sebagai server SQL. Selama proses instalasi Anda juga mengamankan server.