MySQL は、UTF-8、GBK などの複数の文字エンコーディングをサポートする、広く使用されているリレーショナル データベース管理システムです。実際のアプリケーションでは、実際のニーズに合わせて MySQL の文字エンコーディングを変更する必要があることがよくありますが、この記事では、MySQL の文字エンコーディングを変更する方法を紹介します。
MySQL の文字エンコーディングを変更する前に、現在の文字エンコーディングを確認する必要があります。次のコマンドを使用して現在の文字エンコーディングを照会できます。
show variables like 'character_set_database';
出力結果が UTF-8 の場合、現在の文字エンコーディングは UTF-8 です。出力結果が GBK の場合、現在の文字コードは GBK です。
MySQL の文字エンコーディングを変更する前に、まず MySQL サービスを停止する必要があります。次のコマンドを使用して MySQL サービスを停止できます。
sudo service mysql stop
MySQL 構成ファイルは /etc/mysql/mysql.conf にあります。 .d/mysqld.cnf。エディタでファイルを開き、次の 2 行を見つけます:
collation-server = utf8_general_ci character-set-server = utf8
これらを次のように変更します:
collation-server = utf8mb4_unicode_ci character-set-server = utf8mb4
ここで変更されるのは、エンコードが UTF-8 であることです。状況によっては必要な場合があることに注意してください。改造やコーディングを行っております。
MySQL サービスを再起動します。これは次のコマンドで実行できます:
sudo service mysql start
MySQL 文字セットが変更された後、以前に作成されたデータベースとテーブルの文字セットは自動的には変更されません。作成したデータベースとテーブルの文字セットを手動で変更する必要があります。
次のコマンドを使用してデータベースの文字セットを変更します:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
このうち、dbname は変更するデータベース名を表し、utf8mb4 は文字セットを表し、utf8mb4_unicode_ci は照合規則を表します。 。
次のコマンドを使用してテーブルの文字セットを変更します:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
このうち、tablename は変更するテーブル名を表し、utf8mb4 は文字セットを表し、utf8mb4_unicode_ci は照合規則を表します。 。
データの損失を避けるために、上記のコマンドを実行する前に、関連するデータをバックアップする必要があることに注意してください。
MySQL に接続する場合、接続時に使用する文字セットを指定する必要があります。次のコマンドを使用して接続するときに文字セットを指定できます。
mysql -u username -p --default-character-set=utf8mb4 dbname
ここで、username はユーザー名を表し、dbname は接続するデータベースの名前を表し、utf8mb4 は文字セットを表します。
最後に、次のコマンドを使用して、文字セットの変更が成功したかどうかを確認できます。
show variables like 'character_set_database';
出力結果が次の場合変更された文字と一致する コードが一致する場合、変更は成功です。
まとめ
MySQL の文字エンコーディングを変更する際には注意すべき点が多く、データの損失を避けるために関連データのバックアップに注意する必要があります。運用時、特に作成したデータベースやテーブルを変更する場合は注意してください。修正を行う場合は、正式環境に影響がないことを確認するために、まずテスト環境で試してみることをお勧めします。
以上がmysqlの文字エンコーディングを変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。