การ grant สิทธิให้ user sa
บทความนี้ เขียนขึ้นเพื่อแก้ไขการ connect mysql ไม่ได้ เนื่องจากผลกระทบหลังจาก Upgrade MySQL 5.5.31
ปกติ หลังจาก Upgrade MySQL แล้ว hosxp_pcu ก็ใช้งานได้เลย
****แต่มีบางเครื่อง ที่ไม่สามารถ connect mysql ได้ ย้ำนะครับ เป็นบางเครื่องเท่านั้น****
วิธีแก้ไข
วิธีที่ 1
แก้ connection มุมซ้ายล่างหน้า login โดยใช้ user root password ปล่อยว่างไว้
User : root
Password :
วิธีที่ 2
สร้าง User sa password sa ขึ้นมาใหม่ โดยการ Run ไฟล์ที่ส่งมานี้
โดยการ
-ดาวน์โหลดไฟล์ grant_sa.zip มาไว้ในเครื่อง server
-แตกไฟล์ออกจะได้ 4 ไฟล์ คือ grant_sa.bat mysql.exe grant_sa.sql และ readme.txt
-Run คำสั่ง ให้ดับเบิ้ลคลิ๊กไฟล์ grant_sa.bat จะเกิดจอดำ ให้กด enter
-แก้ connection มุมซ้ายล่างหน้า login โดยใช้ user sa password sa ()
User : sa
Password : sa
หมายเหตุ : -ถ้า Run คำสั่งในเครื่อง client ให้แก้คำสั่งใน grant_sa.bat โดยเปลี่ยนคำว่า localhost เป็น หมายเลข IP ของเครื่อง server
===========อธิบายคำสั่งในไฟล์ grant_sa.bat===========
คำสั่งจะเป็นแบบนี้
@ECHO OFF
"mysql.exe" -h localhost -P 3306 -u root -p hosxp_pcu < "grant_sa.sql"
แปลว่า เรียกใช้งานไฟล์ mysql.exe ซึ่งอยู่ตำแหน่งนี้ เพื่อติดต่อกับ mysql server ซึ่งอยู่ที่เครื่องนี้ ทาง port หมายเลข 3306 โดยใช้ User ชื่อ root
password ยังไม่ใส่ จะทำงานกับฐานข้อมูลชื่อ hosxp_pcu โดยไปเอาคำสั่งในการทำงานมาจากไฟล์ grant_sa.sql ที่อยู่ตำแหน่งนี้เช่นกัน
ทั้งนี้ไม่ต้องแสดงผลการทำงานของคำสั่ง
อธิบายได้ว่า
@ECHO OFF => ไม่ต้องแสดงผลการทำงานของคำสั่ง
"mysql.exe" => เรียกใช้งานไฟล์ mysql.exe ณ ตำแหน่ง(path) เดียวกันกับไฟล์ grant_sa.bat
(อยู่ด้วยกันไม่ต้องระบุพาธ) แต่ถ้าไฟล์ mysql.exe ไม่อยู่ตำแหน่งนี้ ต้องระบุ path ให้ทราบว่าจะไปเรียกได้ที่ไหน เช่น
"C:\Program Files\HOSxP_PCU\MySQL\bin\mysql.exe" หรือ
"C:\Program Files (x86)\HOSxP_PCU\MySQL\bin\mysql.exe" หรือ
"C:\Program Files\Chronic\Chronic DBIES System\mysql.exe" เป็นต้น
-h localhost => -h = host หมายถึง จะติดต่อกับ mysql server ที่ host ไหน ค่า default
คือ localhost ในที่นี้ ระบุว่า localhost หมายถึงเครื่องนี้ อีกค่าหนึ่งที่หมายถึงเครื่องนี้เช่นกัน
คือ ค่า 127.0.0.1 หรือถ้าไม่ระบุ -h เลย ก็แสดงว่าให้เรียกใช้ค่า default ก็คือค่า localhost
เช่นกัน
-P 3306 => -P = Port หมายถึง จะติดต่อกับ mysql server โดยใช้ port เลขที่เท่าไหร่
ค่า default คือ 3306 ถ้าระบุ -P xxxx ก็จะเรียกไปที่ port xxxx แต่ถ้าไม่ระบุ -P เลย ก็แสดงว่า
ให้เรียกใช้ค่า default ก็คือค่า 3306 นั่นเอง
-u root => -u = UserName หมายถึง จะติดต่อกับ mysql server โดยใช้ User ชื่ออะไร ชื่อนี้ต้อง
มีการกำหนดไว้ก่อนแล้ว และคนที่ติดตั้ง mysql จะเป็นผู้กำหนดว่า User มีสิทธิทำอะไรได้บ้าง
ปกติ User ที่ทำได้ทุกอย่างจะชื่อ root
-p => -p = password หมาถึง password ของ User ที่จะติดต่อกับ mysql server ถ้า -p เฉยๆ
ไม่มีค่าอะไรต่อท้าย แสดงว่ายังไม่ส่งค่า password ไป.. mysql server จะถามให้ใส่ค่า
password ก่อนจะทำคำสั่ง แต่ถ้าไม่ต้องการให้ถาม ให้ใส่ password ต่อท้าย -p โดยไม่เว้น
ช่องว่าง เช่น -p123456 หรือ -psa เป็นต้น
hosxp_pcu => หมายถึง ชื่อ database ที่จะใช้งาน ในที่นี้จะเรียกใช้งานฐานข้อมูลที่ชื่อ
hosxp_pcu
< "grant_sa.sql" => หมายถึงให้ไปเอาคำสั่งมาจากไฟล์ grant_sa.sql ที่อยู่ที่เดียวกัน
กับไฟล์ grant_sa.bat (อยู่ด้วยกันไม่ต้องระบุพาธ) แต่ถ้าไฟล์ grant_sa.sql ไม่อยู่ตำแหน่งนี้
ต้องระบุ path ให้ทราบว่าจะไปเรียกได้ที่ไหน เหมือนกันกับการระบุ path เรียก mysql.exe
===========อธิบายคำสั่งในไฟล์ grant_sa.sql===========
คำสั่งจะเป็นแบบนี้
GRANT All PRIVILEGES ON *.* to 'sa'@'localhost' IDENTIFIED BY 'sa' WITH GRANT OPTION;
GRANT All PRIVILEGES ON *.* to 'sa'@'127.0.0.1' IDENTIFIED BY 'sa' WITH GRANT OPTION;
GRANT All PRIVILEGES ON *.* to 'sa'@'::1' IDENTIFIED BY 'sa' WITH GRANT OPTION;
GRANT All PRIVILEGES ON *.* to 'sa'@'%' IDENTIFIED BY 'sa' WITH GRANT OPTION;
flush privileges;
แปลว่า อนุญาตสิทธิทุกอย่าง บนฐานข้อมูลทุกฐาน ให้กับ user ที่ชื่อ sa ที่ติดต่อมาจากเครื่องนี้และเครื่องอื่นๆ โดยใช้ password ว่า sa และให้สิทธิในการ
grant สิทธิให้คนอื่นต่อไปด้วย
GRANT All PRIVILEGES = อนุญาตสิทธิทุกอย่าง
ON *.* = บนฐานข้อมูลทุกฐาน
to 'sa' = ให้กับ user ที่ชื่อ sa
@'localhost' = ที่ติดต่อมาจากเครื่องนี้
@'127.0.0.1' = ที่ติดต่อมาจากเครื่องนี้
@'::1' = ที่ติดต่อมาจากเครื่องนี้
@'%' = ที่ติดต่อมาจากเครื่องอื่นๆ
IDENTIFIED BY 'sa' = โดยใช้ password ว่า sa
WITH GRANT OPTION = ให้สิทธิในการอนุญาตสิทธิให้คนอื่นต่อไปด้วย
flush privileges = ยัดสิทธิในเข้าไป หรือให้ใช้งานสิทธิตามที่กำหนดได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น