Menginstal MySQL/MariaDB
MySQL adalah sistem manajemen basis data relasional (RDBMS) yang populer. MariaDB lahir sebagai cabang dari MySQL. Saat ini, kedua produk tersebut sedikit berbeda. Migrasi data dari satu sistem ke sistem lainnya mungkin bukan tugas yang mudah.
MariaDB sepenuhnya dilisensikan di bawah GPLv2, sementara MySQL memiliki dua opsi lisensi: GPLv2 (untuk edisi Community) dan Enterprise.
Di repositori Fedora, Anda dapat menemukan:
-
MariaDB 10.3 (sebagai paket reguler atau sebagai modul)
-
MariaDB 10.4 (sebagai modul)
-
MySQL 8.0 Edisi Komunitas (sebagai paket reguler atau sebagai modul)
| Paket MariaDB dan MySQL bertabrakan karena keduanya menyediakan file yang serupa. Oleh karena itu, Anda hanya dapat menginstal salah satu dari keduanya, baik MariaDB maupun MySQL, tetapi tidak keduanya. |
Selain itu, Anda juga dapat menginstal MySQL Community Edition (8.0 atau 5.7) dari repositori yang dikelola oleh Oracle/MySQL sendiri.
Instal dari Oracle MySQL
|
This page discusses third-party software sources not officially affiliated with or endorsed by the Fedora Project. Use them at your own discretion. Fedora recommends the use of free and open source software and avoidance of software encumbered by patents. |
Menambahkan repositori MySQL ke Fedora
Silakan unduh paket rilis yang disediakan oleh Oracle dari: https://dev.mysql.com/downloads/repo/yum/ Setelah diunduh, silakan instal menggunakan dnf:
sudo dnf install <path to downloaded rpm>
Harap diperhatikan bahwa repositori ini disediakan oleh Oracle, sehingga segala masalah/bug yang ditemukan perlu dilaporkan kepada mereka melalui saluran komunikasi mereka: https://www.mysql.com/about/faq/
Mulai Layanan MySQL dan Aktifkan saat login:
sudo systemctl start mysqld sudo systemctl enable mysqld
temukan Kata Sandi Default, Untuk alasan keamanan, MySQL menghasilkan kunci root sementara. Perlu diperhatikan bahwa MySQL memiliki kebijakan keamanan yang lebih ketat daripada MariaDB.
sudo grep 'temporary password' /var/log/mysqld.log
Instal dari Repositori Utama Fedora
Komunitas menyediakan paket MySQL di repositori utama.
sudo dnf install {community-mysql-server|mariadb-server}
Konfigurasi MySQL/MariaDB
Aktifkan layanan saat boot dan mulai:
sudo systemctl enable {mysqld|mariadb}
sudo systemctl start {mysqld|mariadb}
Instal dari Podman
Memulai Instans Server MySQL
Perintah di bawah ini berisi kata sandi acak yang dihasilkan untuk pengguna root;
podman logs mysql 2>&1 | grep GENERATED
podman run -d --name=mysql -e MYSQL_ROOT_PASSWORD=mypassword mysql/mysql-server
Memulai Instans Server MariaDB
podman run -d --name=mariadb -ed MYSQL_ROOT_PASSWORD=mypassword mariadb/server
| Kata sandi kosong secara default untuk MariaDB |
| Opsi -d yang digunakan untuk BOTH dalam perintah podman run di atas membuat kontainer berjalan di latar belakang. Gunakan perintah ini untuk memantau output dari kontainer: |
Menghubungkan ke Server MySQL dari dalam Kontainer
podman exec -it mysql mysql -uroot -p
Anda harus mereset kata sandi root server dengan menjalankan perintah berikut:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
Menggunakan RDBMS
Hubungkan ke shell MySQL/MariaDB menggunakan perintah mysql.
Untuk keduanya, perintahnya adalah mysql. Sintaks dan opsi umumnya sama.
$ mysql -u root -p
Setelah mendapatkan akses ke shell, Anda dapat mendapatkan versi yang sedang berjalan dari perangkat lunak:
mysql> SELECT version();
Anda dapat membuat database:
mysql> create schema test;
Buat pengguna:
mysql> GRANT ALL PRIVILEGES ON test.* TO 'my_user'@'localhost' IDENTIFIED BY 'PaSsWoRd';
List the available databases:
mysql> show schemas;
Cara Mengizinkan Akses Jarak Jauh MySQL/MariaDB/MYSQL Community
Tambahkan Aturan Baru ke Firewalld
Buka port SQL (3306) pada FireWalld:
sudo firewall-cmd --permanent --zone=public --add-service=mysql
Pengeditan Berkas Konfigurasi:
Berkas konfigurasi:
-
MySQL →
/etc/my.cnf/ -
MySQL Community →
/etc/my.cnf.d/community-mysql-server.cnf -
MariaDB →
/etc/my.conf
Anda dapat memastikan hal tersebut dengan perintah berikut rpm -qc [package].
|
Navigasi ke baris yang dimulai dengan direktif bind-address. Baris tersebut akan terlihat seperti ini: Anda dapat mengatur direktif ini ke alamat IP wildcard, yaitu *, ::, atau 0.0.0.0:
bind-address = 0.0.0.0
Setelah mengubah baris ini, simpan dan tutup berkas, lalu restart layanan MySQL:
sudo systemctl restart {mysqld|mariadb}
Membuat Pengguna
CREATE USER 'your_username'@'host_ip_addr' IDENTIFIED BY 'your_password';
| Ganti your_username dan your_password sesuai dengan nama pengguna dan kata sandi yang Anda inginkan. Di sini, host_ip_addr adalah nama host atau alamat IP komputer dari mana Anda ingin terhubung ke server MySQL/MariaDB. Anda juga dapat menggunakan % sebagai host_ip_addr jika ingin terhubung dari komputer mana pun. Anda juga dapat menggunakan format seperti 192.168.2.% jika ingin terhubung dari komputer-komputer dalam rentang alamat IP 192.168.2.1 – 192.168.2.254. |
Allow Access
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%'; IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
OR
Seringkali orang ingin membuat pengguna “root” yang dapat terhubung dari mana saja. Sebagai contoh, kita akan melakukannya, tetapi untuk memperbaikinya, kita akan membuat pengguna root yang dapat terhubung dari mana saja di jaringan area lokal (LAN).
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Cara Mengatasi Masalah dalam SQL
Versi:
dnf list installed | grep -i -e maria -e mysql -e galera
Periksa parameter dalam berkas konfigurasi:
-
MySQL:
mysqld --print-defaults
-
Komunitas MariaDB/MySQL:
/usr/libexec/mysqld --print-defaults
| Kompatibilitas antara versi yang berbeda tidak diperbolehkan. Cukup instal salah satunya. |
Cara Mengakses Log Kesalahan SQL
Seringkali, penyebab utama perlambatan, crash, atau perilaku tak terduga lainnya dalam SQL dapat Dalam banyak kasus, log kesalahan paling mudah dibaca menggunakan program less, sebuah perintah baris perintah u
Jika SQL tidak berperilaku sesuai yang diharapkan, Anda dapat memperoleh informasi lebih lanjut tentang sumber masalahnya
-
systemctl status mysqld.service tidak berjalan dengan baik, Informasi ini tidak menjelaskan dengan jelas apa yang sedang terjadi?, setelah perintah ini, Anda harus mengetik
journalctl -xe -u mariadb -u mysqld. -
Periksa berkas log, yang dapat ditemukan di
/var/log/mysql/mysqld.loguntuk MySQL, dan/var/log/mariabduntuk MariaDB.
Cara Mengatasi Kesalahan Socket dalam SQL
SQL mengelola koneksi ke server basis data melalui penggunaan berkas soket, yaitu jenis berkas khusus yang memfasilitasi komunikasi antara proses-proses yang berbeda. Berkas soket server MySQL bernama mysqld.sock dan pada sistem Ubuntu biasanya disimpan di direktori /var/run/mysqld/. Berkas ini dibuat secara otomatis oleh layanan MySQL.
Terkadang, perubahan pada sistem Anda atau konfigurasi SQL dapat menyebabkan SQL tidak dapat membaca berkas soket, sehingga Anda tidak dapat mengakses basis data Anda. Kesalahan soket yang paling umum terlihat seperti ini:
ERROR 2002 (HY000): Tidak dapat terhubung ke server MySQL lokal melalui soket ‘/var/run/mysqld/mysqld.sock’ (2)
Ada beberapa alasan mengapa kesalahan ini dapat terjadi, dan beberapa cara potensial untuk mengatasinya. Salah satu penyebab umum kesalahan ini adalah layanan SQL dihentikan atau tidak pernah dimulai sejak awal, artinya layanan tersebut tidak dapat membuat berkas soket sejak awal. Untuk mengetahui apakah ini penyebab kesalahan yang Anda alami, coba mulai layanan tersebut dengan perintah systemctl:
sudo systemctl start {mysqld|mariadb}
Kemudian coba akses prompt MySQL lagi. Jika Anda masih menerima kesalahan soket, periksa kembali lokasi di mana instalasi MySQL Anda mencari berkas soket. Informasi ini dapat ditemukan di berkas mysqld.cnf:
Cari parameter socket di bagian [mysqld] dari berkas ini. Parameter tersebut akan terlihat seperti ini:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306
Tutup berkas ini, lalu pastikan berkas mysqld.sock ada dengan menjalankan perintah ls pada direktori tempat SQL mengharapkan berkas tersebut berada:
ls -a /var/run/mysqld/
Jika berkas soket ada, Anda akan melihatnya dalam output perintah ini:
mysqld.pid mysqld.sock mysqld.sock.lock
Jika file tidak ada, penyebabnya mungkin karena MySQL mencoba membuatnya, tetapi tidak memiliki izin yang cukup untuk melakukannya. Anda dapat memastikan izin yang benar telah diterapkan dengan mengubah kepemilikan direktori menjadi pengguna dan grup mysql:
sudo chown mysql:mysql /var/run/mysqld/
Pastikan pengguna MySQL memiliki izin yang sesuai untuk direktori tersebut. Menyetel izin menjadi 775 biasanya akan berfungsi dalam kebanyakan kasus:
sudo chmod -R 755 /var/run/mysqld/
Akhirnya, restart layanan MySQL agar dapat mencoba membuat berkas soket lagi:
sudo systemctl restart {mysqld|mariadb}
Coba akses prompt MySQL sekali lagi. Jika Anda masih mengalami kesalahan soket, kemungkinan ada masalah yang lebih serius dengan instance MySQL Anda. Dalam hal ini, Anda sebaiknya memeriksa log kesalahan untuk melihat apakah ada petunjuk yang dapat membantu.
Want to help? Learn how to contribute to Fedora Docs ›