วันพุธที่ 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

วันศุกร์ที่ 27 ตุลาคม พ.ศ. 2560

แก้ไข InnoDB แสดงค่าโดยประมาณ

So how can we make phpMyAdmin show exact number of records for InnoDB tables?

Simple. Just open the config.inc.php in your phpMyAdmin installation directory and add this line:
$cfg['MaxExactCount'] = 2000000;
This configuration parameter sets the threshold that phpMyAdmin executes COUNT(*) against the table.
In this case, if the total number of recrods in this InnoDB table is larger than 2,000,000, the Rows count will be estimated, starting with a wave sign, ~; on the other hand, if the total number of records in this InnoDB table is smaller than 2,000,000, phpMyAdmin will run COUNT(*) against the table so an exact Rows count is displayed.



PHP 7.0 ไม่ทำงาน

apt-get install apache2 php7.0 libapache2-mod-php7.0
a2query -m php7.0
a2enmod php7.0
service apache2 restart

NanoPi NEO

Hardware Spec

  • CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
  • DDR3 RAM: 256MB/512MB
  • Connectivity: 10/100M Ethernet
  • USB Host: Type-A x 1, 2.54 mm pin x 2
  • MicroSD Slot x 1
  • MicroUSB: OTG, for power input
  • Debug Serial Port: 4Pin, 2.54 mm pitch pin header
  • Audio input/output Port: 5Pin, 2.0mm pitch pin header
  • GPIO: 2.54mm pitch 36pin. It includes UART, SPI, I2C, IO etc
  • Power Supply: DC 5V/2A
  • PCB Dimension: 40 x 40 mm
  • Working Temperature: -40℃ to 80℃
  • Weight: 14g(WITHOUT Pin-headers)
  • OS/Software: u-boot, UbuntuCore and Android

NanoPi M1

Hardware Spec

  • CPU: Allwinner H3, Quad-core Cortex-A7@1.2GHz
  • GPU: Mali400MP2@600MHz,Supports OpenGL ES2.0
  • DDR3 RAM: 512MB/1GB
  • Connectivity: 10/100M Ethernet
  • Audio: 3.5mm audio jack/Via HDMI
  • Microphone: Onboard microphone
  • IR Receiver: Onboard IR receiver
  • USB Host:Type A, USB 2.0 x 3
  • MicroSD Slot x 1
  • MicroUSB: for data transmission and power input, OTG
  • Video Output: HDMI 1.4 1080P, CVBS
  • DVP Camera Interface: 24pin, 0.5mm pitch FPC seat
  • Debug Serial Port: 4Pin, 2.54mm pitch pin header
  • GPIO: 2.54mm spacing 40pin, compatible with Raspberry Pi's GPIO. It includes UART, SPI, I2C, IO etc
  • User Key: Power LED x 1, Reset x 1
  • PC Size: 64 x 56mm
  • Power Supply: DC 5V/2A
  • Working Temperature: -30℃ to 70℃
  • OS/Software: u-boot,Ubuntu MATE,Debian


วันพฤหัสบดีที่ 26 ตุลาคม พ.ศ. 2560

ผังสลับขา เกือบพังไหมล่ะ

นานๆ ต่อสาย UART กับ NanoPi NEO สักที รอบนี้เกือบทำให้พังเพราะต่อขาผิด เคราะห์ดีแค่ UART สายไฟที่ต่อผิดก็ไม่ร้ายแรงอะไร

สาเหตุเพราะไปดูผังเวอร์ชันใหม่ แต่เครื่องที่ใช้เป็นเวอร์ชันเก่ากว่า เฮ้อ... ต้องบันทึกเก็บไว้ก่อนว่าของเราเป็นเวอร์ชัน 1.2 จำไว้ๆๆๆๆ จะได้ไม่เผอเรออีก...

NanoPi NEO v1.31 ขาเสียงและ Debug สลับที่กันกับ Version 1.2 ขา GND จะอยู่ติดขอบ

V1.2 ขา Debug จะติดกับ USB และขา GND จะอยู่ในสุด

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

วิธีการติดตั้ง Replicate ของ MySQL หลักการแล้วจะทำเพื่อทำเซิร์ฟเวอร์สำรอง กรณีเซิร์ฟเวอร์หลักเสียหรือขัดข้องจนไม่สามารถใช้การได้ จะยังมีเซิร...