برو به محتوای اصلی

پایگاه داده

نصب اسکیمای پایگاه داده و اسکریپت‌های مربوط به 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
نحوه رفع خطای 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" (بسته بزرگتر از بایت‌های 'max_allowed_packet')

فایل 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 نصب نکنید.