پایگاه داده
نصب اسکیمای پایگاه داده و اسکریپتهای مربوط به MyEMS.
پیشنیازها
MyEMS با سرورهای پایگاه داده سازگار با MySQL زیر کار میکند:
MySQL 8.0 (64 بیتی) یا نسخههای جدیدتر
MariaDB 10.5 (64 بیتی) یا نسخههای جدیدتر
SingleStore 7.0 یا نسخههای جدیدتر
نصب و راهاندازی
اسکریپتهای زیر را در خط فرمان 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
افزودن کاربر با دسترسی از راه دور:
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';
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
فایل 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 نصب نکنید.