詳しくは、 必要システム構成 を参照してください。
Adobe 強く では、データベースを設定する際に、次の標準を遵守することをお勧めします。
STRICT_ALL_TABLES
無効なデータ値の保存を防ぐ SQL モード。データベースとのやり取りが望ましくない可能性があります。Adobe Commerceは現在 CREATE TEMPORARY TABLE
取引内の明細書 ( 互換性がない データベース実装では、GTID ベースのレプリケーションを使用します ( 例: Google Cloud SQL 第 2 世代インスタンス. Cloud SQL 8.0 の場合は、MySQL を代わりに使用すると考えてください。
Web サーバーとデータベース・サーバーが異なるホスト上にある場合は、このトピックで説明するタスクをデータベース・サーバー・ホスト上で実行し、次を参照してください。 リモート MySQL データベース接続を設定する.
Adobe CommerceおよびMagento Open Source2.4 では、MySQL 8.0 をクリーンインストールする必要があります。お使いのマシンに MySQL をインストールする手順については、以下のリンクを参照してください。
大量の製品を読み込む場合は、 max_allowed_packet
はデフォルトの 16 MB より大きくなります。
デフォルト値は、クラウドインフラストラクチャ上のAdobe Commerceに適用されます および オンプレミスプロジェクト。 Adobe Commerce on cloud infrastructure Pro のお客様は、 max_allowed_packet
の値です。 クラウドインフラストラクチャ上のAdobe Commerce Starter のお客様は、 /etc/mysql/mysql.cnf
ファイル。
値を増やすには、 /etc/mysql/mysql.cnf
ファイルを編集し、 max_allowed_packet
. 変更を mysql.cnf
ファイルを閉じ、テキストエディタを閉じて MySQL (service mysql restart
) をクリックします。
設定した値をオプションで確認するには、次のコマンドを mysql>
プロンプト:
SHOW VARIABLES LIKE 'max_allowed_packet';
すると、 データベースインスタンスの設定.
Adobe CommerceおよびMagento Open Source2.4 に対して、MySQL 8 のサポートを追加しました。
ここでは、開発者が認識する必要がある MySQL 8 の大きな変更について説明します。
MySQL 8.0.17 では、整数データ型 (TINYINT, SMALLINT, MEDIAMINT, INT, BIGINT) の表示幅の指定が廃止されました。出力に data-type 定義を含むステートメントは、TINYINT(1) を除き、整数型の表示幅を示しません。 MySQL コネクタは、TINYINT(1) 列が BOOLEAN 列として生成されたことを想定しています。 この例外により、ユーザーは引き続きその前提を提示できます。
mysql 8.19 の admin_user について説明する
フィールド | タイプ | Null | キー | デフォルト | 追加 |
---|---|---|---|---|---|
user_id | int unsigned |
いいえ | PRI | NULL |
auto_increment |
firstname |
varchar(32) |
はい | NULL |
||
lastname |
varchar(32 ) |
はい | NULL |
||
email |
varchar(128) |
はい | NULL |
||
username |
varchar(40) |
はい | UNI | NULL |
|
password |
varchar(255) |
いいえ | NULL |
||
created |
timestamp |
いいえ | CURRENT_TIMESTAMP |
DEFAULT_GENERATED |
|
modified |
timestamp |
いいえ | CURRENT_TIMESTAMP |
DEFAULT_GENERATED 更新時 CURRENT_TIMESTAMP |
|
logdate |
timestamp |
はい | NULL |
||
lognum |
smallint unsigned |
いいえ | 0 |
例外 TINYINT(1)、すべての整数パディング (TINYINT > 1, SMALLINT, MEDIAMINT, INT, BIGINT) を db_schema.xml
ファイル。
詳しくは、 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html#mysqld-8-0-19-feature.
8.0 以前は、エントリは外部キーで並べ替えられていました。 デフォルトの並べ替え順は、使用するエンジンによって異なります。
コードが特定の並べ替えに依存する場合は、常に並べ替え順を指定します。
MySQL 8.0.13 以降、非推奨 ASC
または DESC
次の条件を満たす GROUP BY
節が削除されました。 以前に依存していたクエリ GROUP BY
並べ替えを実行すると、以前の MySQL バージョンとは異なる結果が生じる場合があります。 特定の並べ替え順を生成するには、 ORDER BY
句を使用します。
MySQL 8 を適切にサポートするために、Adobe CommerceとMagento Open Sourceにいくつかの変更が加えられました。
Adobe CommerceとMagento Open Sourceは、 /lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php:424.
. 検証が無効になっている場合、MySQL がデータを切り捨てる可能性があります。 MySQL で、クエリの動作が変更されました。 Select * on my_table where IP='127.0.0.1'
IP アドレスが整数ではなく文字列として適切に表示されるようになったので、は結果を返さなくなりました。
MySQL をバージョン 5.7 からバージョン 8 に適切に更新するには、次の手順に従う必要があります。
Adobe CommerceまたはMagento Open Sourceを 2.4.0 にアップグレードします。すべてをテストし、システムが期待どおりに動作することを確認します。
メンテナンスモードを有効にする:
bin/magento maintenance:enable
データベースのバックアップを作成する:
bin/magento setup:backup --db
MySQL をバージョン 8 に更新しました。
バックアップしたデータを MySQL にインポートします。
キャッシュをクリーンアップします。
bin/magento cache:clean
メンテナンスモードを無効にする:
bin/magento maintenance:disable
この節では、Adobe CommerceまたはMagento Open Source用のデータベースインスタンスを作成する方法について説明します。 新しいデータベースインスタンスを使用することをお勧めしますが、必要に応じて、既存のデータベースインスタンスとAdobe CommerceまたはMagento Open Sourceをインストールすることもできます。
MySQL データベースインスタンスを設定するには:
任意のユーザーとしてデータベースサーバーにログインします。
MySQL コマンドプロンプトに移動します。
mysql -u root -p
MySQL を入力 root
ユーザーのパスワードを求められた場合。
次のコマンドを、図の順序で入力して、という名前のデータベースインスタンスを作成します。 magento
ユーザー名 magento
:
create database magento;
create user 'magento'@'localhost' IDENTIFIED BY 'magento';
GRANT ALL ON magento.* TO 'magento'@'localhost';
flush privileges;
入力 exit
をクリックして、コマンドプロンプトを終了します。
データベースを検証します。
mysql -u magento -p
MySQL モニタが表示される場合は、データベースが正しく作成されています。 エラーが表示される場合は、上記のコマンドを繰り返します。
Web サーバーとデータベース・サーバーが異なるホスト上にある場合は、このトピックで説明するタスクをデータベース・サーバー・ホスト上で実行し、次を参照してください。 リモート MySQL データベース接続を設定する.
ビジネスに応じて、データベースインスタンスを適切に設定することをお勧めします。 データベースを設定する際は、次の点に注意してください。
インデクサーは高い値を必要とします tmp_table_size
および max_heap_table_size
の値(例:64 M)。 次に batch_size
パラメータを使用すると、テーブルサイズ設定と共にその値を調整して、インデクサーのパフォーマンスを向上させることができます。 詳しくは、 最適化ガイド を参照してください。
最適なパフォーマンスを得るには、すべての MySQL およびAdobe CommerceまたはMagento Open Sourceインデックステーブルをメモリに保持できるようにします ( 例えば、 innodb_buffer_pool_size
) をクリックします。
MariaDB 10.4 でのインデックス再作成は、他の MariaDB または MySQL バージョンと比べて時間がかかります。 詳しくは、 設定のベストプラクティス.
MySQL の場合 TIMESTAMP
アプリケーションの宣言的スキーマアーキテクチャ(システム変数)で期待される環境設定と構成に従うフィールド explicit_defaults_for_timestamp
は、次のように設定する必要があります on
.
参照:
この設定が有効でない場合、 bin/magento setup:db:status
常に Declarative Schema is not up to date
.
この explicit_defaults_for_timestamp
の設定は非推奨です。 この設定は、将来の MySQL リリースで削除される、非推奨の TIMESTAMP 動作を制御します。 これらの動作が削除されると、 explicit_defaults_for_timestamp
設定も削除されます。
Adobe Commerce on cloud infrastructure プロジェクトの場合、 explicit_defaults_for_timestamp
MySQL (MariaDB) の設定のデフォルト値はです。 オフ.
MariaDB 10.4 および 10.6 でのインデックス再作成は、以前の MariaDB または MySQL バージョンと比べて時間がかかります。 インデックスの再作成を高速化するには、次の MariaDB 設定パラメーターを設定することをお勧めします。
MariaDB 10.6 にアップグレードした後、インデックス化に関連しないパフォーマンスの低下が発生する場合は、 --query-cache-type
設定。 例: --query-cache-type=ON
.
次の推奨事項に加えて、次のパラメーターの設定については、データベース管理者に問い合わせる必要があります。
これらの設定は、オンプレミスの展開でのみ使用できます。 Adobe Commerce on cloud infrastructure のお客様は、これらの設定にアクセスできません。