คลังเก็บบล็อก

Connect to Remote MySQL Server


ถ้าต้องการให้คนอื่นสามารถ ใช้ PHP เข้ามาคิวรี่ข้อมูลในเครื่องเราได้ต้องมีการกำหนดสิทธิกันเล็กน้องครับ หลายวิธีเลย

phpMyAdmin

  1. ไปที่ localhost หรือบางเครื่องจะเป็น 127.0.0.1
  2. users กด Add user
  3. กรอกข้อมูลให้ครบ ตรง Host ใส่ชื่อเครื่อง หรือ ip ของเครื่องที่จะเข้ามาใช้งาน
  4. กลับไปที่ users กด reload the privileges

SQL Query

CREATE USER 'root'@'DEV-SERVER';

GRANT SELECT ,
INSERT ,
UPDATE ,
DELETE ,
CREATE ,
DROP ,
FILE ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON * . * TO 'root'@'DEV-SERVER' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Linux Command How to Allow MySQL Client to Connect to Remote MySQL server

โฆษณา

เช็กสิทธิใน MySQL


ใกล้เลือกตั้งแล้ว เลยจะเขียนอะไรเกี่ยวกับสิทธิดูซักหน่อย สมมุติว่าทำอัลบั้มรูปงานรับปริญญาออนไลน์แต่อยากจะให้สมาชิกดูได้ไม่กี่คน ตามปกติจะมี 3 ตารางคือ ตารางเก็บรูป ตารางสมาชิก และตารางเก็บว่าใครดูได้บ้างอีกตาราง แต่มีเทคนิคที่ทำให้ใช้ 2 ตารางโดยรวมสิทธิไปไว้กับตารางเก็บรูปเลย ก่อนอื่นสร้างตารางก่อน

--
-- Table structure for table `images`
--

CREATE TABLE IF NOT EXISTS `images` (
  `imageId` int(11) NOT NULL AUTO_INCREMENT,
  `src` varchar(20) NOT NULL,
  `assign` varchar(100) NOT NULL,
  PRIMARY KEY (`imageId`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `images`
--

INSERT INTO `images` (`imageId`, `src`, `assign`) VALUES
(1, 'Graduate.jpg', '2,3,15,19');

สร้างตารางสมาชิกเองนะครับ ^_^ ค่าใน assign คือ id ของ user แต่ละคนคั่นด้วย , เวลาแสดงก็หาได้โดยใช้ไอดีของ user มาใส่ใน function FIND_IN_SET ช่วยเลือกข้อมูลตามตัวอย่าง

SELECT  `imageId` ,  `src` 
FROM  `images` 
WHERE FIND_IN_SET(  '3',  `assign` ) > 0;

ถ้า id 3 มีอยู่ใน assign ก็จะเห็นข้อมูลครับ

%d bloggers like this: