แสดงบทความที่มีป้ายกำกับ error แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ error แสดงบทความทั้งหมด

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

Debian: mariadb server

จู่ๆ ก็ไม่สามารถสตาร์ท mariadb ได้ และเมื่อใช้ journalctl -xe ก็เห็น error ดังนี้ 

Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1517212349,1517212349
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT at 1517212349 between the checkpoint 1517212349 and the end 1517212361.
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [Note] InnoDB: Starting shutdown...
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] Plugin 'InnoDB' init function returned error.
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [Note] Plugin 'FEEDBACK' is disabled.
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] Unknown/unsupported storage engine: InnoDB
Oct 29 23:21:16 db1 mariadbd[651]: 2021-10-29 23:21:16 0 [ERROR] Aborting
Oct 29 23:21:16 db1 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE

ค้นหาในเน็ตก็ไม่รู้สาเหตุแต่มีวิธีแก้ไข คือ ลบไฟล์ /var/lib/mysql/ib_logfile* ออกก็ใช้ได้เลย เดี๋ยวจะหาสาเหตุอีกที

วันศุกร์ที่ 21 เมษายน พ.ศ. 2560

Arduino IDE บน Ubuntu 16.04 อัพโหลดไม่ได้

ขณะอัพโหลดโปรแกรมไปยัง Arduino ใน Ubuntu 16.04 พบว่ามี error

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

วิธีการแก้ไขปัญหาให้พิมพ์
$ sudo usermod -a -G dialout <username>
$ sudo chmod a+rw /dev/ttyACM0

วันจันทร์ที่ 3 เมษายน พ.ศ. 2560

Qt จาก Command Line

1. สร้างโฟลเดอร์ HelloQt

2. สร้างไฟล์ hello.cpp 
nano hello.cpp

3. พิมพ์โค้ด
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]){
  QApplication app(argc, argv);
  QPushButton *button = new QPushButton("Quit");
  QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
  button->show();
  return app.exec();
}

วันเสาร์ที่ 4 กุมภาพันธ์ พ.ศ. 2560

Qt: โหลด mysql แล้ว Error

กำลังพัฒนาระบบโดยใช้ MySQL เป็นฐานข้อมูล และใช้ Qt C++ เป็นตัวพัฒนาระบบ การทำงานแบบ GUI อื่นๆ ก็ใช้ได้ผลดี ง่ายต่อการใช้งานและเรียนรู้ แต่ประเด็นปัญหากับเกิดขึ้นเมื่อใช้ MySQL หรือ MariaDB โดยมีข้อความขณะรันโปรแกรมว่า

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

ดูจากข้อความที่ได้แล้วจะเห็นว่า Plugin เกี่ยวกับ SQL Database มีทั้งหมด 7 รายการรวมถึง MySQL ด้วย แต่ทำไมถึงบอกว่าไดร์เวอร์ไม่ได้โหลดใช้งาน

เข้าไปค้นใน google แล้วก็พบว่าปัญหาเกี่ยวกับ libmysql.dll ซึ่งเป็นตัวเชื่อมต่อไปยังฐานข้อมูล ให้คัดลอกไปไว้ในโฟลเดอร์ที่โปรแกรมทำงานด้วย ก็เข้าไปใน MariaDB คัดลอกไฟล์ไปแล้วก็ใช้ไม่ได้ เข้าไปโหลดทั้ง MaridDB Connector และ MySQL Connector ก็ยังใช้ไม่ได้

สุดท้ายเห็นเว็บบอร์ดแห่งหนึ่งบอกว่าให้โหลด MySQL Server แล้วขยายไฟล์และคัดลอกไฟล์ libmysql.dll ไปใช้งาน 

เอ้า ลองดูสิ 

ว้าว! มันใช้งานได้ ก็อดแปลกใจนิดๆ ว่าทำไม MySQL Connector ทำไมใช้ไม่ได้ ก็งงๆ ไปก่อนเดี๋ยวค่อยหาข้อมูลต่อว่าทำไมถึงเป็นเช่นนั้น


วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2559

ESP8266, Error ขณะคอมไพล์

ESP8266 เป็นอุปกรร์ IoT ที่น่าสนใจตัวหนึ่ง เพราะมีขนาดเล็กกินไฟน้อยเพียงแค่ 3.3V จุดเด่นพิเศษ คือ มี Wi-Fi ในตัว มีทั้งรุ่นที่บรรจุสายอากาศภายในตัวเป็นลายทองแดงบนแผ่นปริ้นท์ กับรุ่นที่ต่อสายอากาศภายนอก

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

Error แจ้งไม่รู้จักบอร์ด NodeMCU 1.0 

วันอังคารที่ 17 พฤษภาคม พ.ศ. 2559

เพิ่ม ATmega16 เข้าไปใน boards.txt

การเริ่มเรียนรู้ วิธีการเขียนโปรแกรมด้วย AVR Studio 7 บางครั้งก็สับสนไม่แน่ใจว่าโปรแกรมผิดหรือว่าอุปกรณ์ใช้ไม่ได้ ดังนั้นควรมีหลักในการยึดเพื่อเปรียบเทียบบ้างก็จะดี ทำให้หาสาเหตุได้ง่าย โดยผู้เขียนมักจะใช้ Arduino IDE เป็นหลักในการยัด โดยจะทดสอบกับ Arduino IDE แล้วสามารถใช้งานได้ ก็ถือว่าบอร์ดนั้นใช้ได้ จะได้หาสาเหตุที่โปรแกรมต่อไป

โดยปกติแล้ว ATmega16 ไม่ได้อยู่ในรายการบอร์ดของ Arduino IDE เพราะเท่าที่เห็นแล้วบอร์ด Arduino ไม่ได้ใช้ Chip 40 ขา ซึ่งจะมี I/O มากกว่า โดยมี Port A, B, C และ D สามารถเลือกใช้งานขา I/O ได้ถึง 32 ขา ดังนั้นหากต้องการควบคุมอุปกรณ์เป็นจำนวนมากแล้วย่อมต้องเลือก ATmega16 แต่ถ้าอุปกรณ์เพียงไม่กี่ชิ้นก็ไม่เหมาะเพราะไอซี 40 ขาตัวนี้ค่อนข้างใหญ่เทอะทะพอสมควร

ดังนั้นหากต้องการใช้บน Arduino IDE ก็ต้องเข้าไปเพิ่มอุปกรณ์ในไฟล์ boards.txt และอื่นๆ อีกเล็กน้อย โดยเริ่มแรกหาจากอินเตอร์เน็ต ซึ่งทำตามแล้วยังใช้ไม่ได้ เพราะ IDE คนละเวอร์ชัน สภาพแวดล้อมเปลี่ยนจากเดิม แต่ก็ไม่เหนือบ่ากว่าแรง หากพยายามและมีหลักการการค้นหาปัญหา

ATmega16 ที่เพิ่มเข้าไปใน Arduino IDE จะแยกเป็นฮาร์ดแวร์อีกกลุ่มหนึ่ง

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

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