質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

1回答

1103閲覧

MySQLの書式をデフォルト値として変更したい

hattositegoo

総合スコア2

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

1クリップ

投稿2021/06/30 08:50

MySQLのクライアント側の書式をサーバー側に合わせるため、「utf8」→「cp932」に変更したいのですが、その方法がわかりません。(実際のデータ操作は、xamppのphpMyAdminを主に使用するつもりですが、コマンドプロンプトでも文字化けなしで対応できるようにしておきたいと思います)

前提・実現したいこと

【現状】
mysql> 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 | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
■このように変更したいと思います。
character_set_client     → cp932
character_set_connection   → cp932
character_set_results  → cp932

発生している問題・エラーメッセージ

■コマンドプロンプトで下記の通り実行すると、一時的には変更できるのですが、MySQLを立ち上げ直すと、また元の設定(utf8)に戻ってしまいます。
SET character_set client = cp932
SET character_set_connection = cp932
SET character_set_results = cp932

試したこと

■デフォルト値として設定を変えるには、「my.ini」の内容を書き換えるという記事をよく目にしますが、いろいろな箇所を変更したものの一向に結果に反映されません(utf8がcp932になりません)。
つきましては、「my.ini」の原文を以下に記しますので、どこをどのように変更すれば良いのか、ご教示いただけますと誠に幸いです。

【my.ini】※コメント部分は削除
[client]
character-set-server=utf8
port = 3306
socket = "/xampp/mysql/mysql.sock"

[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
port= 3306
socket = "/xampp/mysql/mysql.sock"
basedir = "/xampp/mysql"
tmpdir = "/xampp/tmp"
datadir = "/xampp/mysql/data"
pid_file = "mysql.pid"

key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"

plugin_dir = "/xampp/mysql/lib/plugin/"

server-id = 1

innodb_data_home_dir = "/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "/xampp/mysql/data"

innodb_buffer_pool_size = 16M

innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
log_bin_trust_function_creators = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]ボールドテキスト
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

補足情報(FW/ツールのバージョンなど)

MySQL(MariaDB)5.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コマンドプロンプトを利用する価値はないのでやる必要のない作業です
SJIS(CP932)は5C問題があるためRDBには圧倒的に不向きです

投稿2021/07/01 00:54

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hattositegoo

2021/07/01 06:44

yambejpさま ご助言いつもありがとうございます。5C問題の件、自分でも検索してみましたところ、SJIS(cp932)という文字コードがプログラミングに大変不向きであるということがよくわかりました。お蔭でコマンドプロンプトでデータベースを操作するという考えを、きっぱりと捨てることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問