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

پایگاه داده

نصب اسکیمای پایگاه داده و اسکریپت‌های مربوط به MyEMS.

پیش‌نیازها

MyEMS با następujące سرورهای پایگاه داده سازگار با MySQL کار می‌کند :

MySQL 8.0 (64 بیتی) یا جدیدتر

MariaDB 10.5 (64 بیتی) یا جدیدتر

SingleStore 7.0 یا جدیدتر

GoldenDB 2.0 (64 بیتی) یا جدیدتر

OceanBase 3.2 (64 بیتی) یا جدیدتر

GreatDB 6.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 نصب نکنید.