Bismillaahirrohmaanirrohiim…
Suatu ketika kita ingin menginstall server khusus database, di mana script program kita letakkan di lokasi server yang berbeda, bahkan di localhost sekalipun.
Kegunaan remote mysql / mariadb adalah kita dapat melakukan maintain database di server yang terpisah, disamping itu server database tersebut juga dapat diakses oleh beberapa program sekaligus dari beberapa server yang berbeda.
Di sini, saya akan membuat tutorial tentang bagaimana cara setting remote MySQL/MariaDB dengan mudah. Kita menggunakan server centos untuk mencobanya.
Langkah-langkahnya adalah sebagai berikut:
Pada dasarnya disini apache nanti digunakan untuk mengakses PHPMyAdmin saja, jika tidak memerlukannya atau sudah ada webserver yang terinstall, step ini bisa dilewati.
untuk menginstall apache web server, jalankan perintah ini:
yum install httpd
setelah selesai, jalankan apache dengan perintah:
systemctl start httpd
agar service autorun saat direboot, jalankan:
systemctl enable httpd.service
kemudian pastikan bahwa port HTTP 80 dan HTTPS 443 sudah terbuka di firewall. Jika belum tambahkan dengan perintah:
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Untuk mencoba instalasinya, silahkan akses via browser:
http://serverIP atau http://123.123.123.123
jika tidak memerlukan php atau sudah ada sebelumnya, lewati step ini.
Kita akan menginstall versi PHP 7.4, untuk menginstallnya, jalankan perintah:
yum install epel-release yum-utils -y yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y yum-config-manager --enable remi-php74 yum install php php-common php-mcrypt php-cli php-gd php-curl php-mysql -y
untuk mencoba php sudah jalan atau belum, buat file phpinfo.php di root folder htmlnya (/var/www/html) dengan isi:
<?php phpinfo();
lalu buka browser dan jalankan http://123.123.123.123/phpinfo.php
kita akan menginstall mariaDB versi terbaru, download repo dari web resminya, dengan cara:
sh <(curl https://downloads.mariadb.com/MariaDB/mariadb_repo_setup || wget -O - https://downloads.mariadb.com/MariaDB/mariadb_repo_setup)
kemudian jalankan repo tersebut:
//ubuntu apt install mariadb-server mariadb-client //centos 7 yum install mariadb-server mariadb-client //centos 8 dnf install mariadb-server mariadb-client
jalankan mariadb / mysql
systemctl start mariadb
jalankan mysql / mariadb saat boot
systemctl enable mariadb
Secara default install mysql membuat user anonimous, yang bisa login tanpa membuat user, kemudian membuat database test, dimana database tersebut dapat diakses semua user. Jadi kita perlu menghapus user anonimous dan database test tersebut, membuat root password, dll.
buat installasinya menjadi secure:
mysql_secure_installation
jawaban pertanyaan sebagai berikut:
Switch to unix_socket authentication [Y/n] Y //jika ada pertanyaan ganti password root Change the root password? [Y/n] Y New password: Type new root password Re-enter new password: Re-enter new root password //hapus user anonim Remove anonymous users? [Y/n] Y //jangan izinkan login root dari remot Disallow root login remotely? [Y/n] Y //hapus db test Remove test database and access to it? [Y/n] Y //restart privilage Reload privilege tables now? [Y/n] Y
setelah semua sukses, lanjut ke tahap selanjutnya.
Edit /etc/my.cnf atau lokasi config mysql yang berisi tentang bind-address, misal di /etc/my.cnf.d/server.cnf
Cari dan edit baris berikut:
//isi ip address yang diizinkan untuk remote mysql bind-address=1.1.1.1 //atau jika ingin diakses dari semua server isi ip 0.0.0.0 bind-address=0.0.0.0
jika tidak memerlukannya, silahkan lanjut ke langkah berikutnya.
cara install phpmyadmin, ketikkan:
yum install epel-release yum install phpmyadmin
database ini yang nanti kita remote dari server lain.
cara membuatnya, kita perlu login ke mysql dulu, ketikkan:
mysql -u root -p //lalu masukkan password kemudian enter
buat database dengan perintah:
create database dbsatu;
buat user usersatu untuk database dbsatu dengan password pass123:
CREATE USER 'usersatu'@'localhost' IDENTIFIED BY 'pass123';
berikan hak akses usersatu ke database dbsatu:
//dbsatu dapat diakses dari server 123.123.123.123 saja GRANT ALL ON dbsatu.* to 'usersatu'@'123.123.123.123' IDENTIFIED BY 'pass123' WITH GRANT OPTION; //dpt diremote dari server 123.123.123.123 saja dan dapat diakses semua DB GRANT ALL ON *.* to 'usersatu'@'123.123.123.123' IDENTIFIED BY 'pass123' WITH GRANT OPTION; //dapat diakses dari semua server, kita gunakan yang ini GRANT ALL ON dbsatu.* to 'usersatu'@'%' IDENTIFIED BY 'pass123' WITH GRANT OPTION;
Agar port mysql dapat diakses dari luar, port 3306 harus dibuka. Caranya:
Cara 1:
iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT iptables -A INPUT -i eth0 -s 1.1.1.1 -p tcp --destination-port 3306 -j ACCEPT => satu ip saja yg boleh service iptables save
Cara 2:
ufw allow from 123.123.123.123 to any port 3306 => ijinkan port mysql diakses dari 123.123.123.123 ufw allow 3306 => ijinkan port mysql diakses dari semua server ufw reload //kalo ufw belum ada bisa diinstall yum install -y epel-release yum install -y ufw
Cara 3:
firewall-cmd --permanent --zone=trusted --add-source=192.0.2.10/32 => utk port 192.0.2.10 sampai 32 firewall-cmd --permanent --zone=trusted --add-port=3306/tcp firewall-cmd --reload
Cara 4: temporary open bukan permanent
firewall-cmd --add-port=3306/tcp; firewall-cmd --remove-port=3306/tcp; => remove port firewall-cmd --reload; => remove port yg temporary
Atau langsung dipanel ditambahkan, tapi perlu di restart / stop dan start.
Nah sekarang tinggal mencoba mengakses mysql dari server lain, kita bisa menggunakan komputer lokal yang sudah terinstall mysql client.
pertama buka CMD, kemudian cd xampp/mysql/bin
setelah masuk jendela mysql, kita ketikkan perintah:
mysql -h namahost -P portmysql -u userdatabase -p passdatabase --database=namadatabase //mudahnya jika server 123.123.123.123 dengan perintah sederhana mysql -h 123.123.123.123 -u usersatu -p //masukkan password //setelah masuk, cek database show databases; //pilih database dbsatu use dbsatu; //jalankan perintah sql lainnya yang diinginkan
Demikianlah cara setting remote MySQL / MariaDB, perlu diketahui bahwasannya kekurangan remote mySQL ini adalah, jika server databasenya diakses lambat, maka aplikasi kita juga akan lambat. Jadi pastikan server MySQL dapat diakses dan mempunyai kecepatan yang bagus.
Remote mysql ini juga bisa digunakan untuk wordpress, drupal, joomla, yii framework, laravel, dsb. Yang mana script diinstall diserver A, kemudian database mySQL nya di server yang lainnya.
Semoga bermanfaat.
Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…
Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…
Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…
Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…
Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…
Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…