How to Grant Access User to MySQL


Kita nak setup satu web server yang akan host 5 php application dan satu lagi server yang akan jadi sebagai DB server kepada semua PHP application tu tadi.

Langkah-langkahnya :
OS : CentOS 5.x / RHEL 5.3

1) SSH ke server DB
2) Edit fail my.cnf (# nano /etc/my.cnf)
3) Edit line bold berikut :
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = ip.server.db.anda
# skip-networking
4) Save dan restart mysql (# /etc/init.d/mysqld restart)
5) Kita nak bagi kebenaran akses daripada WEB Server kepada DB Server untuk guna DB MYSQL
# mysql -u root -p mysql
6) GRANT Access kepada DB Baru Create :
mysql> CREATE DATABASE namaDB;
mysql> GRANT ALL ON 
namaDB.* TO namaUSER@'ip.server.web.anda' IDENTIFIED BY 'PASSWORD';
7) GRANT Access kepada DB sedia ada
mysql> update db set Host='202.54.10.20' where Db='webdb'; (update host baru utk db webdb)
mysql> update user set Host='202.54.10.20' where user='webadmin'; (update user baru dari host tu)
8) Keluar dari mysql :
mysql> exit
9) Kalau guna IPTable pada DB Server untuk kawal laluan keluar masuk server, update seperti berikut : (Benarkan akses dari subnet 192.168.0/24 melalui port 3306 ke server DB)

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
10) Nak test dari server WEB Server tadi :
$ mysql -u namaUSER –h ip.db.server.anda –p

11) Kalau nak tau port 3306 tu buka ke tk server DB tu :
$ telnet 65.55.55.2 3306
12) Kalau berjaya keluar suh masuk password dan berjaya, maka lepas lah tu!..well done!

~ Be a Creator Not a User ~

Ulasan