database
sidebar_position: 1
ฐานข้อมูล
ติดตั้งโครงสร้างฐานข้อมูลและสคริปต์สำหรับ MyEMS
ข้อกำหนดเบื้องต้น
MyEMS ทำงานร่วมกับเซิร์ฟเวอร์ฐานข้อมูลที่เข้ากันได้กับ MySQL ดังต่อไปนี้
MySQL 8.0 (64bit) หรือใหม่กว่า
MariaDB 10.5 (64bit) หรือใหม่กว่า
การติดตั้ง
ดำเนินการสคริปต์ต่อไปนี้ใน commandline ของ MySQL หรือดำเนินการในเครื่องมือไคลเอนต์ MySQL อื่น ๆ เช่น MySQL Workbench, Navicat, DBaver, phpMyAdmin เป็นต้น
cd ~/myems/database/install
mysql -u root -p < myems_billing_db.sql
mysql -u root -p < myems_carbon_db.sql
mysql -u root -p < myems_energy_baseline_db.sql
mysql -u root -p < myems_energy_db.sql
mysql -u root -p < myems_energy_model_db.sql
mysql -u root -p < myems_energy_plan_db.sql
mysql -u root -p < myems_energy_prediction_db.sql
mysql -u root -p < myems_fdd_db.sql
mysql -u root -p < myems_historical_db.sql
mysql -u root -p < myems_production_db.sql
mysql -u root -p < myems_reporting_db.sql
mysql -u root -p < myems_system_db.sql
mysql -u root -p < myems_user_db.sql
ข้อมูลสาธิตเป็นทางเลือก หากต้องการแทรกข้อมูลสาธิต ให้ดำเนินการสคริปต์ต่อไปนี้
cd ~/myems/database/demo-cn
mysql -u root -p < myems_system_db.sql
วิธีแก้ไขข้อผิดพลาด MySQL 'access denied for user'
เพิ่มผู้ใช้สำหรับการเข้าถึงระยะไกล
sudo mysql -u root -p
mysql>
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
mysql>
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
mysql>
FLUSH PRIVILEGES;
mysql>
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
วิธีการเปลี่ยน COLLATE สำหรับเซิร์ฟเวอร์ MySQL ก่อนเวอร์ชัน 8.0
sudo nano /etc/mysql/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
วิธีแก้ไขข้อผิดพลาด MySQL "a packet bigger than 'max_allowed_packet' bytes"
เปลี่ยนไฟล์ my.cnf หรือ my.ini (มักพบใน /etc/mysql/) ภายใต้ส่วน mysqld และตั้งค่า:
max_allowed_packet=100M
หรือคุณสามารถรันคำสั่งเหล่านี้ในคอนโซล MySQL ที่เชื่อมต่อกับเซิร์ฟเวอร์เดียวกัน:
set global net_buffer_length=1000000;
set global max_allowed_packet=1000000000;
ระวัง
ห้ามติดตั้งฐานข้อมูลลงในคอนเทนเนอร์ Docker สำหรับสภาพแวดล้อมการทำงานจริง