วันพุธที่ 15 พฤศจิกายน พ.ศ. 2560

การติดตั้ง MySQL Replicate server จากการโคลนนิ่ง Master

วิธีการติดตั้ง Replicate ของ MySQL หลักการแล้วจะทำเพื่อทำเซิร์ฟเวอร์สำรอง กรณีเซิร์ฟเวอร์หลักเสียหรือขัดข้องจนไม่สามารถใช้การได้ จะยังมีเซิร์ฟเวอร์สำรองอีกหนึ่งเครื่องเพื่อเปิดใช้งานแทน โดยข้อมูลใน MySQL นั้นจะมีเหมือนเดิมทุกประการ (ความเสียหายที่เกิดจะต้องไม่เสียหายจากการกระทำโดยตรงกับข้อมูล MySQL เพราะจะทำให้การเปลี่ยนแปลงใน Master ส่งผลไปยัง Slave ด้วย)

การที่จะทำให้ระบบสามารถใช้งานได้เป็นอย่างดีนั้น ระบบใน Slave ต้องเหมือนกันทุกอย่างกับ Master ยกเว้นข้อมูลเกี่ยวกับชื่อและ IP ของเซิร์ฟเวอร์ และการตั้งค่าใน MySQL

วิธีการง่ายที่สุดคือทำให้ Master ทำงานได้สมบูรณ์แบบและไม่มีการเปลี่ยนแปลงใดๆ แล้วก็ใช้วิธีการ Cloning หรือเขียนเป็น Image ไว้แล้วนำติดตั้งในเครื่อง Slave แล้วเข้าไปแก้ไข Network, และข้อมูลเกี่ยวกับ Server และคอนฟิกของ MySQL ดังนี้

1. เปลี่ยน IP ในไฟล์ /etc/networking/interfaces กรณีที่ใช้ DHCP และติดตั้ง mDNS ก็ไม่ต้องแก้ไขในส่วนนี้
2. เปลี่ยนชื่อใน /etc/hosts
3. แก้ไข /etc/mysql/mysql.conf.d/mysqld.conf ให้เป็นข้อมูลของ Slave
4. ลบไฟล์ /var/lib/mysql/auto.conf ในเครื่อง Slave แล้วรีสตาร์ท MySQL เพื่อให้สร้าง UUIDs ใหม่ ไม่อย่างนั้นจะไม่สามารถเปิดใช้งาน Replicate ได้


จากนั้นก็ดำเนินการติดตั้ง Replicate ได้เลย... (มีอัพเดทข้อมูลภายหลัง)

วันอาทิตย์ที่ 12 พฤศจิกายน พ.ศ. 2560

Ubuntu 16.04 เปลี่ยนแหล่งเก็บ config ของ mysql

ปกติเราจะเข้าไปแก้ไขไฟล์ config ของ mysql ได้ที่ /etc/my.cnf หรือ /etc/mysql/my.cnf แต่สำหรับ Ubuntu เวอร์ชัน 16.04 แล้วจะเปลี่ยนแปลงการจัดเก็บคอนฟิกสำหรับ mysql ใหม่เป็น /etc/mysql/mysql.conf.d/ แทน โดยภายในไดเรคทอรีใหม่นี้จะมีไฟล์แยกเป็น mysqld.conf และ mysqld_safe_syslog.cnf ซึ่งเป็นการแยกส่วนให้ง่ายต่อการปรับแต่งระบบ และรูปแบบใหม่นี้จะแยกไฟล์คอนฟิกสำหรับ mysqldump ไปไว้ใน /etc/mysql/conf.d ซึ่งก็สะดวกดีเช่นกัน
ในไฟล์ my.cnf ได้เพิ่มการอ้างถึงไดเรคทอรีสำหรับจัดการระบบของ mysql

Gtk4 ตอนที่ 6 Defining a Child object

Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...