Jika Anda menggunakan MariaDB dari XAMPP (LAMPP) di Linux, langkah-langkahnya sedikit berbeda karena konfigurasi MariaDB dalam XAMPP tidak sama dengan instalasi biasa. Berikut langkah-langkah untuk mengatasi error "Host is not allowed to connect to this MariaDB server" di XAMPP:
1. Izinkan Akses Remote ke Database
Secara default, XAMPP hanya mengizinkan akses dari localhost. Anda perlu mengubah izin di MariaDB.
a. Edit Izin Akses User di MariaDB
-
Jalankan MariaDB di XAMPP:
sudo /opt/lampp/lampp start
-
Masuk ke MariaDB:
sudo /opt/lampp/bin/mysql -u root -p
Jika XAMPP tidak memiliki password root, cukup jalankan:
sudo /opt/lampp/bin/mysql -u root
-
Cek daftar user dan host yang diizinkan:
SELECT user, host FROM mysql.user;
Jika
root
hanya memiliki hostlocalhost
, Anda perlu menambah izin untuk host eksternal. -
Tambahkan izin untuk akses dari luar:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
Ganti
'root'
dan'password'
dengan username serta password yang sesuai.
2. Ubah Konfigurasi my.cnf
Konfigurasi MariaDB di XAMPP bisa ditemukan di:
/opt/lampp/etc/my.cnf
- Buka file konfigurasi dengan editor teks:
sudo nano /opt/lampp/etc/my.cnf
- Cari baris berikut (biasanya ada di bagian
[mysqld]
):
Ganti menjadi:bind-address = 127.0.0.1
bind-address = 0.0.0.0
- Simpan dan keluar (di Nano, tekan
CTRL + X
, laluY
danEnter
).
3. Restart XAMPP
Agar perubahan diterapkan, restart server XAMPP:
sudo /opt/lampp/lampp restart
4. Pastikan Firewall Tidak Memblokir Port 3306
Jika Anda mengakses dari komputer lain, pastikan firewall mengizinkan koneksi ke MariaDB:
sudo ufw allow 3306/tcp
Atau, jika menggunakan iptables
:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
5. Uji Koneksi dari Luar
Dari komputer lain atau aplikasi yang ingin terhubung ke database, coba koneksi:
mysql -u root -p -h [IP_SERVER_XAMPP] -P 3306
Ganti [IP_SERVER_XAMPP]
dengan alamat IP komputer yang menjalankan XAMPP.
Setelah semua langkah dilakukan, coba jalankan ulang aplikasi Anda dan lihat apakah error masih muncul.
jika
grant all privileges on *.* to 'root'@'%' identified by ''; ERROR 1133 (28000): Can't find any matching row in the user table
Error 1133 (28000): Can't find any matching row in the user table berarti user root@'%' belum ada di database MariaDB Anda, sehingga tidak bisa diberikan hak akses langsung.
Untuk mengatasi ini, ikuti langkah-langkah berikut:
1. Cek User yang Ada di MariaDB
Jalankan perintah berikut untuk melihat daftar user yang tersedia di database MariaDB XAMPP:
SELECT user, host FROM mysql.user;
Jika hasilnya hanya menunjukkan user root@localhost
, itu berarti root hanya bisa diakses dari localhost, bukan dari host lain.
2. Tambahkan User Baru dengan Hak Akses dari Mana Saja
Jika tidak ada user root@'%', buat user baru yang bisa diakses dari mana saja:
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Ganti 'password'
dengan kata sandi yang ingin Anda gunakan.
Jika Anda ingin memberikan akses ke user yang sudah ada, tambahkan izin aksesnya:
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
3. Ubah Konfigurasi my.cnf
agar Mengizinkan Remote Access
- Buka file konfigurasi MariaDB di XAMPP:
sudo nano /opt/lampp/etc/my.cnf
- Cari baris berikut dalam bagian
[mysqld]
:
Ubah menjadi:bind-address = 127.0.0.1
bind-address = 0.0.0.0
- Simpan dan keluar (di Nano, tekan
CTRL + X
, laluY
danEnter
).
4. Restart MariaDB di XAMPP
Agar perubahan diterapkan, restart XAMPP:
sudo /opt/lampp/lampp restart
5. Coba Koneksi dari Host Lain
Dari komputer lain, coba koneksi menggunakan perintah:
mysql -u root -p -h [IP_SERVER_XAMPP] -P 3306
Ganti [IP_SERVER_XAMPP]
dengan alamat IP dari komputer yang menjalankan XAMPP.
Jika masih gagal, pastikan firewall tidak memblokir port 3306:
sudo ufw allow 3306/tcp
Setelah langkah-langkah ini, Anda seharusnya bisa terhubung ke MariaDB XAMPP dari host lain.
0 Comments