Advertisement

mengatasi error "Host is not allowed to connect to this MariaDB server" di XAMPP

 


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

  1. Jalankan MariaDB di XAMPP:

    sudo /opt/lampp/lampp start
    
  2. 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
    
  3. Cek daftar user dan host yang diizinkan:

    SELECT user, host FROM mysql.user;
    

    Jika root hanya memiliki host localhost, Anda perlu menambah izin untuk host eksternal.

  4. 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
  1. Buka file konfigurasi dengan editor teks:
    sudo nano /opt/lampp/etc/my.cnf
    
  2. Cari baris berikut (biasanya ada di bagian [mysqld]):
    bind-address = 127.0.0.1
    
    Ganti menjadi:
    bind-address = 0.0.0.0
    
  3. Simpan dan keluar (di Nano, tekan CTRL + X, lalu Y dan Enter).

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

  1. Buka file konfigurasi MariaDB di XAMPP:
    sudo nano /opt/lampp/etc/my.cnf
    
  2. Cari baris berikut dalam bagian [mysqld]:
    bind-address = 127.0.0.1
    
    Ubah menjadi:
    bind-address = 0.0.0.0
    
  3. Simpan dan keluar (di Nano, tekan CTRL + X, lalu Y dan Enter).

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.

 

 

 

Post a Comment

0 Comments