MySQL secara default hanya bisa diakses melalui localhost (127.0.0.1), yang artinya database yang ada pada MySQL Engine tidak bisa diakses secara jarak jauh (remotely). Lalu bagaimana caranya agar database bisa di akses secara remote? Ikut langkah-langkah berikut:

IP Host Server: 192.168.1.10
Kemudian masuk ke MySQL dengan user root di localhost
#mysql -uroot -p
>CREATE DATABASE namadatabase_db;
>SELECT PASSWORD(‘admin’);
+——————————————-+
| password(“admin”)                         |
+——————————————-+
| *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
+——————————————-+
1 row in set (0.00 sec)

>CREATE USER bolodewe IDENTIFIED BY PASSWORD ‘*4ACFE3202A5FF5CF467898FC58AAB1D615029441’;
>GRANT ALL PRIVILEGES ON databasesaya.* TO ‘bolodewe’@’%’ IDENTIFIED BY ‘*4ACFE3202A5FF5CF467898FC58AAB1D615029441’;
>FLUSH PRIVILEGES;
>exit;

Atau dengan syntax lain seperti di bawah ini:

>CREATE USER bolodewe IDENTIFIED BY ‘passwordsaya’;
>GRANT ALL PRIVILEGES ON databasesaya.* TO ‘bolodewe’@’%’ IDENTIFIED BY ‘passwordsaya’;
>FLUSH PRIVILEGES;
>exit;

Jika Anda menghendaki cakupan aksesnya hanya pada host dengan segment, maka gantilah notasi % dengan alamat_ip atau segment_ip/netmask, misal:

>CREATE USER bolodewe IDENTIFIED BY ‘passwordsaya’;
>GRANT ALL PRIVILEGES ON databasesaya.* TO ‘bolodewe’@’192.168.1.0/255.255.255.0’ IDENTIFIED BY ‘passwordsaya’;
>FLUSH PRIVILEGES;
>exit;

Langkah selanjutnya, ubahlah file konfigurasi MySQL

#vi /etc/mysql/my.cnf

Sesuaikan baris berikut:

#bind-address        = 127.0.0.1
#bind-address        = 192.168.1.10
#bind-address = 0.0.0.0

Restart service mysql

#service mysql restart

Lakukan tes akses ke mysqlserver dengan

>mysql -h 192.168.1.10 -u bolodewe -p

Jika berhasil, maka langkah akses MySQL secara remote sudah selesai, namun jika masih gagal yang biasanya ditandai dengan peringatan:

ERROR 1045 (28000): Access denied for user ‘bolodewe’@’192.168.1.10’ (using password: YES)

Maka lakukan update password dari user bolodewe dengan cara seperti ini:

>USE mysql;
>UPDATE user SET password=PASSWORD(‘admin’) WHERE user=’bolodewe’;
>FLUSH PRIVILEGES;

Tes sekali lagi dengan menggunakan command promp maupun aplikasi MySQL Client seperti SQLYog dan lain sebagainya. Terimakasih.