วันอาทิตย์ที่ 2 กุมภาพันธ์ พ.ศ. 2557

วิธีทำให้ mysql ติดต่อจาก host อื่นๆได้

ปกติผมจะเขียน php ติดต่อกับ mysql โดยที่ web server กับ mysql server อยู่ในเครื่องเดียวกันทำให้ไม่ต้องออกแรงอะไรมากในการเขียน  แต่วันนี้มีความจำเป็นต้องเขียน php ติดต่อกับ mysql ที่อยู่คนละเครื่อง(host)กัน  เลยต้องมีการ config mysql server เล็กน้อย  เพื่อเป็นการไม่เสียเวลาเริ่มกันเลยนะครับ

สิ่งที่ต้องมีดังนี้
- mysql server on ubuntu 12.04 (ip: 192.168.1.20)
- web server (ip: 192.168.1.18)

ขั้นตอนที่1: รีโมทเข้า ubuntu server(ip: 192.168.1.20) ผ่าน SSH 


ขั้นตอนที่2: แก้ไขไฟล์ my.cnf 

โดยใช้คำสั่ง
nano /etc/mysql/my.cnf
ให้หาตัวแปรคำว่า  bind-address ในหัวข้อ [mysqld] ให้เปลี่ยนเป็นหมายเลข ip mysql server ในตัวอย่างนี้คือ 
[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    = 192.168.1.20
เมื่อแก้ไขไฟล์เสร็จแล้วทำการบันทึกและปิดไฟล์ my.cnf  จากนั้นให้ทำการ restart mysql server ด้วยคำสั่ง
/etc/init.d/mysql restart

ขั้นตอนที่3: กำหนดสิทธิ์ให้เครื่องที่จะติดต่อกับ mysql server

เข้าสู่ mysql server ด้วยคำสั่่ง
mysql -u root -p mysql
จากนั้นผมขอยกตัวอย่างผมจะสร้างฐานข้อมูลชื่อว่า shoptoday ติดต่อจากเครื่องที่มี IP:192.168.1.18 โดยผู้ใช้ john รหัสผ่าน 123456 ด้วยคำสั่่ง
mysql> CREATE DATABASE shoptoday;
mysql> GRANT ALL ON shoptoday.* TO john@'192.168.1.18' IDENTIFIED BY '123456';
จากนั้นก็ออกจาก mysql server ด้วยคำสั่ง
mysql> exit
ที่มา http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น