ตัวอย่างการติดตั้ง MySQL 5 บน Fedora Core (RPM)

โดย อดิศร  ขาวสังข์
เขียนเมื่อ : 11/12/2548
ทดสอบบน : Fedora Core 4
อ้างอิง : http://altos.scphkk.ac.th/~manoi/hosxp/manual/content/hosxp-linux-mysql-install.html

บทนำ
MySQL 5 ได้มีการเพิ่มความสามารถขึ้นมาหลายอย่างเช่น :

  • ACID Transaction (Automic, Consistent, Isolated, Durable)
  • Stored Procedure
  • Trigger
  • View
  • Information Schema
  • Distributed Transaction (XA)

ดังนั้นถ้าอยากจะใช้ความสามารถดังกล่าวก็ควรจะต้องใช้ MySQL 5 และสำหรับคนที่เพิ่งศึกษาอยากจะติดตั้ง MySQL 5 แบบ RPM บน Linux ซึ่งในที่นี้ทดลองติดตั้งบน Fedora Core 4 ก็สามารถดูข้อมูลได้จากขั้นตอนต่อไปนี้

ขั้นตอนการติดตั้ง

  1. บน Fedore Core ถ้ามีการ Enable SELinux หรือไม่มีการคอนฟิก SELinux ให้อนุญาตการใช้งาน MySQL ก็จะมีปัญหาไม่สามารถ Start การทำงานของ MySQL ได้นะครับ ซึ่งในที่นี้ผู้เขียนได้ disable SELinux ก่อนแล้ว
  2. ให้ดาวน์โหลดโปรแกรม MySQL 5 เวอร์ชันล่าสุดจาก www.mysql.com โดยให้เลือกรุ่นที่ตรงกับ Server ที่จะติดตั้ง ซึ่งในที่นี้ผู้เขียนได้ทดลองบนเครื่อง x86 จึงได้เลือกไฟล์สำหรับ Linux x86 generic RPM ดังรูป



  3. โปรแกรมที่ต้องดาวน์โหลดจริง ๆ แล้วแค่ 3 โปรแกรมก็อาจจะพอเพียงแล้วคือโปรแกรม MySQL-client, MySQL-server และที่สำคัญคือ MySQL-shared-compat ที่ว่าสำคัญเพราะถ้าใช้ Fedora Core 4 จะมีบางแพ็กเกจของ MySQL เวอร์ชัน 4 ที่จำเป็นติดตั้งมาแล้วบางส่วน  ดัีงนั้นเมื่อเราติดตั้งเวอร์ชันใหม่ที่เป็นเวอร์ชัน 5 อาจจะเจอปัญหา  การแก้ปัญหาก็ให้ติดตั้ง MySQL-shared-compat ด้วย สรุปแล้วโปรแกรมที่ควรติดตั้งมีดังนี้ :
  • –MySQL-client (Client programs)
    –
  • MySQL-devel (Libraries and header files)
  • –MySQL-shared-compat (Shared compatibility libraries )
  • –MySQL-server (Server)
  1. ทำการติดตั้งโปรแกรมทั้ง 4 ดังรูปข้างล่าง  (จากรูปข้างล่างให้เปลี่ยนโปรแกรม MySQL-shared เป็น MySQL-shared-compat นะครับ  เพราะรูปนี้เป็นรูปเก่าอยู่)



  2. ในขั้นตอนการติดตั้ง MySQL-server จะทำการ Start MySQL ถ้าไม่มีข้อผิดพลาดก็จะสามารถ Start ได้ OK ดังรูปข้างบน
  3. เพื่อความชัวร์เราสามารถทดสอบการใช้งานโปรแกรมได้โดยใช้ user เ็ป็น root และยังไม่มี password



  4. แต่เพื่อความปลอดภัยเราควรจะำกำหนด password ของ root ตามคำแนะนำ ซึ่งเมื่อเรากำหนด password ของ root แล้ว การเรียกใช้งานจะไม่สามารถเรียกใช้งานผ่าน user ที่เป็น root โดยไม่มี password ได้ต่อไป ดังรูปข้างล่าง



  5. และเพื่อความปลอดภัยเราควรจะสร้าง user ชื่อใหม่ขึ้นมาแทน root ซึ่งในที่นี้ผู้เขียนได้สร้าง user ใหม่ชื่อว่า mysqladmin และรหัสผ่านก็เป็น mysqladmin และกำหนดสิทธิ์ให้ทำงานได้เทียบเท่ากับ root ด้วยการใ่ส่ออฟชัน with grant option ดังรูปข้างล่าง



  6. ขั้นตอนการคอนฟิก MySQL
    1. ให้ทำการ stop การทำงานของ MySQL แล้วลบไฟล์ที่ขึ้นต้นด้วย ib ในไดเร็คทอรี่ /var/lib/mysql ออกทั้งหมด จากนั้นให้สำเนา config file ซึ่งในที่นี้ขอเลือกเป็นขนาดปานกลาง (medium) คือไฟล์ /usr/shae/mysql/my-meduim.cnf ไปไว้เป็น /etc/my.cnf ดังรูป



    2. ให้เปิดไฟล์คอนฟิกคือ /etc/my.cnf ขึ้นมาเพื่อทำการคอนฟิกดังนี้
      - ป้อนข้อความ default-character-set = tis620 ใต้บรรทัดmyisam_sort_buffer_size = 8M
      - ใส่เครื่องหมาย # หน้าคำว่า log-bin=mysql-bin (ในส่วนของ Replication Master Server)
      -
      เอาเครื่องหมาย # ออกจากคำว่า innodb ถ้าต้องการใช้ InnoDB Tables
      -
      เปลี่ยนค่า innodb_data_file_path = ibdata1:10M:autoextend จาก 10M เป็น 100M
      -
      ในส่วนของ [mysqldump] ใต้บรรทัด max_allowed_packet = 16M ให้ป้อนคำว่า allow-keywords
    3. บันทึกไฟล์แล้วทำการ start การทำงานของ MySQL ดังรูปข้างล่าง



  7. การใช้งานกับ phpMyAdmin
    1. ดาวน์โหลด phpMyAdmin มาติดตั้งไว้ในตำแหน่งที่สามารถเีีรียกใช้งานผ่านเ็ว็บได้
    2. •การคอนฟิกแบบที่ตอนเข้าใช้งานไม่ต้องมีการป้อน user และ password ทำดังนี้ :
      -
      ไฟล์คอนฟิกของ phpMyAdmin ชื่อว่า config.inc.php หรือ config.default.php (ขึ้นอยู่กับเวอร์ชันของ phpMyAdmin)
      -
      ให้แก้ไขเปลี่ยนแปลงค่าของ user และ password ของค่าต่อไปนี้จำนวน 1 หรือ 3 จุด (ขึ้นอยู่กับเวอร์ชัน) ให้ตรงกับ user ของระบบ MySQL
      • $cfg['Servers'][$i]['user']          = 'root';
      • $cfg['Servers'][$i]['password']      = ‘ksorn';         
    3. การคอนฟิกแบบที่ตอนเข้าใช้งานไม่ต้องมีการป้อน user และ password ทำดังนี้ :
      1. ให้เปลี่ยนค่าของคำที่ใช้ในการเข้าและถอดรหัสแบบ blowfish จาก
        $cfg['blowfish_secret'] = '';  เป็น    $cfg['blowfish_secret'] = ‘yourcode';
        yourcode เป็นคำที่ใช้ในการเข้าและถอดรหัสแบบ blowfish ยิ่งยาวยิ่งดี

      2. ให้เปลี่ยนค่าของ Authentication Type ของบรรทัดต่อไปนี้ จาก config เป็น cookie
        $cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
        ซึ่งเป็นการเปลี่ยนวิธีการตรวจสอบผูใช้จากการฝังรหัสผ่านลงไปในไฟล์คอนฟิก  เป็นการป้อนทางหน้าเว็บ
      3. บันทึกข้อมูลของไฟล์คอนฟิก
      4. เมื่อมีการเรียกใช้งาน phpMyAdmin จะมีการถาม user และ password ดังรูป

จบครับ