moodle を 3.6.4 から 3.7.2 に upgrade したところ、email address を変更しようとすると、
データベースの読み込み中にエラーが発生しました。
というエラーが発生して変更できません。初めて使用する学生は必ず e-mail アドレスを入力する必要があるので、 登録できない状態になってしまいます。対処法がわかりましたら教えてください。
OS RedHat EL 7
MariaDB 10.1.31
PHP 7.1.15 です。
データベースの文字コードの不一致のようですが、mysqldump で一度すべてバックアップしてからリストアするしかないでしょうか。
問題なく変換できるかどうか分かりませんが、過去に本投稿添付のシェルスクリプトを使って照合順序 (Collation) を一括変換したことがあります。
#!/bin/sh
DB="your_dbname"
USER="your_dbuser"
PASS="your_password"
(
echo 'ALTER DATABASE `'"$DB"'` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
mysql -p$PASS -u $USER "$DB" -e "SHOW TABLES" --batch --skip-column-names \
| xargs -I{} echo 'ALTER TABLE `'{}'` ROW_FORMAT = DYNAMIC; \
ALTER TABLE `'{}'` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; \
ALTER TABLE `'{}'` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
) \
| mysql -p$PASS -u $USER "$DB"