MySQL Collation Repair: Table Level Changes

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

This document is part of the guide on How to Fix the Collation and Character Set of a MySQL Database. Please refer to that page for more information.

目次

 

使用可能な照合

Not all versions of Confluence support utf8mb4 (which provides support for 4-btye characters). You may need to use utf8.

utf8mb4 を使用可能 utf8 の使用が必須
  • MySQL 5.7.9 以降で実行されている Confluence 7.3 以降
  • Confluence 7.2 以前
  • Any Confluence versions running on MySQL 5.6

Before Proceeding

Before proceeding, ensure that you:

  • Have shut down Confluence
  • Have completed a full database backup

You may also wish to apply these changes in a test environment before applying them to production.

Identifying Database Tables with the incorrect character set or collation

以降の例で、次のように変更します。 

  • <yourDB>: 実際のデータベース名
  • <charset>: utf8 または utf8mb4
  • <collation>: utf8_bin または utf8mb4_bin

次のクエリを実行します。

SELECT T.TABLE_NAME, C.CHARACTER_SET_NAME, C.COLLATION_NAME
FROM information_schema.TABLES AS T, information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = '<yourDB>'
AND 
(
	C.CHARACTER_SET_NAME != '<charset>'
	OR
	C.COLLATION_NAME != '<collation>'
);

Adjusting the collation and character set

To fix a single table, run the following query against your database - change 'tableName' to suit:

ALTER TABLE `tableName` CHARACTER SET <charset> COLLATE <collation>

To alter all tables in the database, you'll need to generate an ALTER TABLE query for each table that isn't correctly set. The following script will produce a collection of those queries. Adjust 'database' to reflect your database name:

SELECT CONCAT('ALTER TABLE ',  table_name, ' CHARACTER SET <charset> COLLATE <collation>;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = '<yourDB>'
AND 
(
	C.CHARACTER_SET_NAME != '<charset>'
	OR
	C.COLLATION_NAME != '<collation>'
);
最終更新日: 2020 年 2 月 4 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.