CONTENTS


Lastmodified 2021-02-16 (火) 11:59:03


MySQL 5.7 to 8.0

Nextcloud 20.0.5 へUPしたところ、

MySQL version "5.7.32-log" is used. Nextcloud 21 will no longer support this version and requires MySQL 8 or higher.

とのこと。

【参考URL】https://gato.intaa.net/archives/12577


Mysql dump import

DB全体をバックアップ

mysqldump -v -u root -p -x --all-databases > dump_ALL.sql

特定のDBをバックアップ

mysqldump -v -u root -p database_name > dump.sql

mysqldump -v -u root -p NC > dump_NC.sql
mysqldump -v -u root -p nc > dump_nc.sql

MySQL57 から 8 にバージョンアップ

# portupgrade -o databases/mysql80-client -r databases/mysql57-client
# portupgrade -o databases/mysql80-server -r databases/mysql57-server

手元の環境(FreeBSD 11.4-RELEASE-p3)だと、上記では、インストールエラー(same place)が出るので、地味に

# cd /usr/ports/databases/mysql57-client
# make deinstall
# cd ../mysql57-server
# make deinstall

cd /usr/ports/databases/mysql57-client && make deinstall && cd ../mysql57-server && make deinstall
# portinstall mysql80-client
# portinstall mysql80-server

portinstall mysql80-client --batch && portinstall mysql80-server --batch
# service mysql-server restart          #MySQLサーバを再起動(ここまで旧バージョンで稼働したままで可)
# mysql_upgrade -u root -pパスワード    #データベースの確認と更新
# mysql_upgrade -u root -p

としたところ、以下の様なメッセージが。

Enter password: The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server. To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade. The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand. It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.

mysql_upgradeクライアントは非推奨になりました。 アップグレードクライアントによって実行されるアクションは、サーバーによって実行されるようになりました。 アップグレードするには、古いデータディレクトリで新しいMySQLバイナリを起動してください。 ユーザーテーブルの修復は自動的に行われます。 アップグレード後に再起動する必要はありません。 アップグレードプロセスは、古いデータディレクトリで新しいMySQLバイナリを実行すると自動的に開始されます。 誤ってアップグレードしないように、MySQLバイナリで--upgrade = NONEオプションを使用してください。 サーバーのアップグレードシーケンスをオンデマンドで実行するために、オプション--upgrade = FORCEも提供されています。 いくつかの理由により、サーバーのアップグレードが失敗する可能性があります。 その場合、アップグレードシーケンスは、次回のMySQLサーバーの起動時に再度実行されます。 サーバーのアップグレードが繰り返し失敗する場合は、-upgrade = MINIMALオプションを使用してサーバーを起動し、アップグレードシーケンスを実行せずにサーバーを起動して、ユーザーが手動で問題を修正できるようにすることができます。

起動せず!?

と言うか、一端起動してプロセスは上がるが、すぐにシャットダウンする模様。

MySQL8からはクエリキャッシュが使えなくなった

とのことで、

[ERROR] [MY-000067] [Server] unknown variable 'query_cache_type=0'.
[ERROR] [MY-010119] [Server] Aborting

と言うようなエラーで落ちます。

そこで、設定ファイルからキャッシュの設定をコメントアウトする。

/usr/local/etc/mysql/my.cnf

[mysqld]
#query_cache_type                = 0
#query_cache_size                = 0

起動した。

別の機体でも機動せず。こちらは、

2021-02-12T07:14:02.153229Z 0 [ERROR] [MY-000077] [Server] /usr/local/libexec/mysqld: Error while setting value 
'NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.

ということで、NO_AUTO_CREATE_USER の記述をmy.cnf から消去。

#sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

う、動いた。 https://qiita.com/gremito/items/45c327e044df2c0368cc


OpenPNE 3.9.6 「サーバが混み合っているか・・・・」のエラー

tail /var/log/httpd-error.log

[client xxx.yyy.zzz.aaa:123456] Couldn't locate driver named mysql

              ↓

portupgrade -rf php73-pdo_mysql-7.3.27 --batch

Total access 1134:本日 2:昨日 2

Counter: 1134, today: 2, yesterday: 2

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-02-16 (火) 11:59:03