MySQL(MariaDB) データベースの文字コードを latin1 から utf8 に変更する方法

MariaDB [db]> select * from  names;
+----+-------------------+---------------------+
| id | name              | updated_at          |
+----+-------------------+---------------------+
|  1 | ?                 | 2020-11-13 07:57:41 |
|  2 | ?                 | 2020-11-13 07:57:41 |
|  3 | ?                 | 2020-11-13 07:57:41 |
|  4 | ?                 | 2020-11-13 07:57:41 |
|  5 | ?                 | 2020-11-13 07:57:41 |
|  6 | ?                 | 2020-11-13 07:57:41 |
|  7 | ??                | 2020-11-13 07:57:41 |
|  8 | ??                | 2020-11-13 07:57:41 |
|  9 | ???               | 2020-11-13 07:57:41 |
| 10 | ???               | 2020-11-13 07:57:41 |
+----+-------------------+---------------------+

SHOW VARIABLES LIKE "chara%";

MariaDB [db]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

https://qiita.com/YusukeHigaki/items/2cab311d2a559a543e3a

・character_set_client : クライアント側で発行したsql文はこの文字コードになる
・character_set_connection : クライアントから受け取った文字をこの文字コードへ変換する
・character_set_database : 現在参照しているDBの文字コード
・character_set_results : クライアントへ送信する検索結果はこの文字コードになる
・character_set_server : DB作成時のデフォルトの文字コード
・character_set_system : システムの使用する文字セットで常にutf8が使用されている
基本的にはこれを全部(character_set_filesystem, character_sets_dir以外)utf-8にすればok。

my.cndに各種設定ファイルの読み込み設定の確認

sudo vim /etc/my.cnf
!includedir /etc/my.cnf.d  #my.cnf.dの設定ファイル読み込み

設定ファイルmy.cnf.dの設定ファイルの編集(スーパーユーザーで実施)

sudo vim /etc/my.cnf.d/server.cnf
[mysqld]
...
character-set-server=utf8 #mysqldセクションの末尾に追加

mysqld(mariadb) を再起動します。

#systemctl restart mysql

mariadb

#systemctl restart mariadb

utf8に切り替わりました。

MariaDB [(none)]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

この記事のご感想やコメントはこちら

メールアドレスが公開されることはありません。 が付いている欄は必須項目です