Menginstal MySQL/MariaDB

Alessio, Héctor Louzao, Ankur Sinha, Michal Schorm Versi F43 Last review: 2026-03-25
MySQL adalah sistem manajemen basis data relasional (RDBMS) yang banyak digunakan. MariaDB adalah fork MySQL yang dikembangkan oleh komunitas dan merupakan implementasi MySQL yang lebih disukai di Fedora. Meskipun kedua produk ini memiliki asal-usul yang sama, keduanya telah berkembang secara terpisah seiring waktu dan migrasi data di antara keduanya mungkin tidak mudah.

MariaDB dilisensikan di bawah GPLv2. MySQL menggunakan lisensi ganda: GPLv2 untuk Community Edition dan lisensi proprietary untuk Enterprise.

Fedora menyertakan paket berversi untuk keduanya:

  • MariaDB rilis LTS, mis. mariadb10.11, mariadb11.8

  • MySQL rilis LTS, mis. mysql8.4

Satu versi dari masing-masing dalam setiap rilis Fedora ditetapkan sebagai "default distribusi", yang menyediakan nama paket tanpa versi (mariadb, mariadb-server atau mysql, mysql-server).

Untuk melihat versi mana yang tersedia di rilis Fedora Anda:

$ dnf search mariadb | grep server
$ dnf search mysql | grep server
Versi yang tersedia mungkin berbeda antar rilis Fedora. Paket MariaDB dan MySQL berkonflik karena menyediakan file yang serupa — Anda hanya dapat menginstal salah satunya pada satu waktu.

Instal dari repositori Fedora

Menginstal MariaDB

Untuk menginstal versi default distribusi:

$ sudo dnf install mariadb-server

Untuk menginstal versi tertentu:

$ sudo dnf install mariadb11.8-server

Menginstal MySQL

Untuk menginstal versi default distribusi:

$ sudo dnf install mysql-server

Untuk menginstal versi tertentu:

$ sudo dnf install mysql8.4-server

Memulai layanan

Untuk MariaDB:

$ sudo systemctl enable --now mariadb

Untuk MySQL:

$ sudo systemctl enable --now mysqld

Menghubungkan

Untuk MariaDB, pengguna root terhubung melalui autentikasi unix socket tanpa kata sandi:

$ mysql -u root

Untuk MySQL, Anda mungkin perlu terhubung dengan kata sandi:

$ mysql -u root -p

Menghapus

$ sudo dnf remove mariadb-server

atau:

$ sudo dnf remove mysql-server

Instal dari repositori Oracle MySQL

Halaman ini membahas sumber perangkat lunak pihak ketiga yang tidak secara resmi berafiliasi atau didukung oleh Proyek Fedora. Gunakan sumber-sumber ini dengan pertimbangan Anda sendiri. Fedora merekomendasikan penggunaan perangkat lunak bebas dan sumber terbuka serta menghindari perangkat lunak yang terikat oleh paten.

Oracle menyediakan repositori MySQL mereka sendiri untuk Fedora. Ini berguna jika Anda memerlukan versi yang tidak tersedia di repositori Fedora.

Menambahkan repositori Oracle MySQL

Unduh paket rilis dari https://dev.mysql.com/downloads/repo/yum/ dan instal:

$ sudo dnf install <path-ke-rpm-yang-diunduh>
Repositori ini dikelola oleh Oracle. Laporkan masalah melalui https://www.mysql.com/about/faq/

Menginstal dan memulai MySQL

$ sudo dnf install mysql-community-server
$ sudo systemctl enable --now mysqld

MySQL menghasilkan kata sandi root sementara pada saat pertama kali dijalankan. Temukan dengan:

$ sudo grep 'temporary password' /var/log/mysqld.log

Kemudian amankan instalasi:

$ sudo mysql_secure_installation

Jawab pertanyaan keamanan sesuai preferensi Anda. Gunakan kata sandi yang kuat untuk pengguna root MySQL — ini terpisah dari kata sandi root sistem Anda.

Menghubungkan

$ mysql -u root -p

Menghapus Oracle MySQL

$ sudo dnf remove mysql-community-server mysql-community-libs mysql-community-common

Instal menggunakan container

Fedora menyediakan image container di quay.io.

Container MariaDB

$ podman pull quay.io/fedora/mariadb-118
$ podman run -d --name mariadb -e MYSQL_ROOT_PASSWORD=mypassword quay.io/fedora/mariadb-118

Container MySQL

$ podman pull quay.io/fedora/mysql-84
$ podman run -d --name mysql -e MYSQL_ROOT_PASSWORD=mypassword quay.io/fedora/mysql-84

Menghubungkan ke basis data dari container

$ podman exec -it mariadb mysql -uroot -p

atau untuk MySQL:

$ podman exec -it mysql mysql -uroot -p

Mengelola container

$ podman start <nama-container>
$ podman stop <nama-container>
$ podman restart <nama-container>
$ podman rm <nama-container>

Untuk image yang tersedia, lihat https://quay.io/organization/fedora

Menggunakan basis data

Hubungkan ke shell basis data:

$ mysql -u root -p
Untuk MariaDB yang diinstal dari repositori Fedora, pengguna root terhubung melalui autentikasi unix socket tanpa kata sandi: mysql -u root

Periksa versi yang sedang berjalan:

SELECT version();

Buat basis data dan pengguna:

CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

Tampilkan daftar basis data yang tersedia:

SHOW DATABASES;

Lokasi data

File basis data disimpan di /var/lib/mysql.

Mengizinkan akses jarak jauh

Buka port firewall

$ sudo firewall-cmd --permanent --zone=public --add-service=mysql
$ sudo firewall-cmd --reload

atau menggunakan nomor port secara langsung:

$ sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
$ sudo firewall-cmd --reload

Konfigurasi bind address

Edit konfigurasi untuk mengizinkan koneksi dari host lain.

Lokasi file konfigurasi:

  • MariaDB: /etc/my.cnf dan /etc/my.cnf.d/

  • MySQL: /etc/my.cnf dan /etc/my.cnf.d/

Anda dapat menemukan file konfigurasi untuk paket apa pun dengan rpm -qc <package-name>.

Atur bind address untuk menerima koneksi dari semua antarmuka:

[mysqld]
bind-address = 0.0.0.0

Kemudian restart layanan:

$ sudo systemctl restart mariadb

atau untuk MySQL:

$ sudo systemctl restart mysqld

Buat pengguna jarak jauh

CREATE USER 'myuser'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
Ganti % dengan alamat IP atau subnet tertentu (mis. 192.168.1.%) untuk membatasi akses ke host tertentu.

Menghubungkan dari jarak jauh

$ mysql -u myuser -h <server-ip> -p

Pemecahan masalah

Periksa versi yang terinstal

$ dnf list installed | grep -i -e maria -e mysql

Periksa konfigurasi aktif

Untuk MariaDB:

$ mariadbd --print-defaults

Untuk MySQL:

$ mysqld --print-defaults

Log kesalahan

Jika layanan gagal dimulai, periksa journal:

$ journalctl -xe -u mariadb

atau untuk MySQL:

$ journalctl -xe -u mysqld

File log juga dapat ditemukan di:

  • MariaDB: /var/log/mariadb/mariadb.log

  • MySQL: /var/log/mysql/mysqld.log

Kesalahan socket

Jika Anda melihat kesalahan seperti:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Ini biasanya berarti layanan tidak berjalan. Coba mulai layanannya:

$ sudo systemctl start mariadb

Jika layanan berjalan tetapi file socket tidak ada, periksa path socket yang dikonfigurasi:

$ mysql --help | grep socket

Verifikasi file socket ada:

$ ls -la /var/lib/mysql/mysql.sock

Jika file tidak ada, pastikan direktori data memiliki kepemilikan dan izin yang benar:

$ sudo chown mysql:mysql /var/lib/mysql
$ sudo chmod 755 /var/lib/mysql

Kemudian restart layanan:

$ sudo systemctl restart mariadb

Jika masalah berlanjut, tinjau log kesalahan untuk detail lebih lanjut.