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

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

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

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

MariaDB

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

3回答

4727閲覧

MariaDBでDBを作成した際にINSERTしたデータが文字化けします。

echo

総合スコア12

MySQL

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

MariaDB

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2016/06/22 01:33

編集2016/06/22 01:48

###前提・実現したいこと
簡単なテーブルを作成して、データを入れる練習をしていたのですが、
INSERTした際に入力した2バイト文字が文字化けしてしまいます。
・my.iniの変更点
[mysqld]
character-set-server = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

###発生している問題・エラーメッセージ
INSERTしたデータの2バイト文字が文字化けしてしまい、
データの中身が確認できません。

エラーメッセージ

###該当のソースコード create table goods(id INT UNSIGNED NOT NULL AUTO_INCREMENT, goods_name varchar(100), price INT(11), PRIMARY KEY(id) ) default charset=utf8; insert into goods(goods_name, price) values('あああ',123); select * from goods; ###試したこと ・データベースの作成しなおし ・テーブルの作成しなおし ・my.iniを変更した際にMySQL(MariaDB)の再起動 ###補足情報(言語/FW/ツール等のバージョンなど) OS/Windows10 使用ツール/ XAMPP v3.2.2 mysql Ver 15.1 Distrib 10.1.13-MariaDB, for Win32 (AMD64) Connection id: 2 Current database: test1 Current user: ****@localhost SSL: **** Using delimiter: ; Server: MariaDB Server version: 10.1.13-MariaDB mariadb.org binary distribution Protocol version: ** Connection: localhost via TCP/IP Insert id: 1 Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: **** Uptime: 18 min 4 sec ※アスタリスクの部分は正常な値が入っていますが、隠しています。 他にも必要な情報がありましたら教えて下さい。 2016/06/22 10:47追記 MariaDB [test1]> DESC goods; +------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | goods_name | varchar(100) | YES | | NULL | | | price | int(11) | YES | | NULL | | +------------+------------------+------+-----+---------+----------------+ DESC goods;を実行した結果になります。

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

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

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

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

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

tanat

2016/06/22 01:41

DESC goods; でgoodsテープルの定義を表示し、追記してみてもらえますか?
echo

2016/06/22 01:54 編集

>tanat様 情報ありがとうございます。 今追記いたしましたので、ご確認ください。
guest

回答3

0

ベストアンサー

私もMySQL+コマンドプロンプトでさんざん苦労したので、もうコマンドプロンプトからSQL文を直接入力することはしていないですが、お試しいただく価値があるのは、接続後に
set character_set_client=cp932;
を入力してから操作する方法です。
my.iniに書いたりクライアントの起動オプションに指定したりしてもうまくいかなかった場合も、これで行けたことがあります。

投稿2016/06/22 03:19

dupont_kedama

総合スコア925

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

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

echo

2016/06/22 03:35

>dupont_kedama様 ご回答有り難うございます。 set (省略) =cp392;は実は別な方の回答のURLに乗っていまして、 そちらは試したんです…ごめんなさい 現在も下記のように文字化けしたままなんです…。 MariaDB [test1]> status; -------------- mysql Ver 15.1 Distrib 10.1.13-MariaDB, for Win32 (AMD64) Connection id: 10 Current database: test1 Current user: tatsu@localhost SSL: Not in use Using delimiter: ; Server: MariaDB Server version: 10.1.13-MariaDB mariadb.org binary distribution Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: cp932 Conn. characterset: utf8 TCP port: 3306 Uptime: 1 hour 24 min 31 sec Threads: 3 Questions: 204 Slow queries: 0 Opens: 3 Flush tables: 1 Open tables: 14 Queries per second avg: 0.040 -------------- MariaDB [test1]> insert into goods(goods_name, price) values('あああ',123); Query OK, 1 row affected (0.03 sec) MariaDB [test1]> select*from goods; +----+------------+-------+ | id | goods_name | price | +----+------------+-------+ | 1 | ?????? | 123 | | 2 | ?????? | 456 | | 3 | ?????? | 456 | | 4 | ???????? | 456 | | 5 | 縺ゅ≠縺・| 123 | +----+------------+-------+ 5 rows in set (0.00 sec)
echo

2016/06/22 03:49

すみません、再度今 set character_set_client=cp932; set character_set_database=cp932; set character_set_server=cp932; を実行して MariaDB [test1]> status; -------------- mysql Ver 15.1 Distrib 10.1.13-MariaDB, for Win32 (AMD64) Connection id: 10 Current database: test1 Current user: tatsu@localhost SSL: Not in use Using delimiter: ; Server: MariaDB Server version: 10.1.13-MariaDB mariadb.org binary distribution Protocol version: 10 Connection: localhost via TCP/IP Server characterset: cp932 Db characterset: cp932 Client characterset: cp932 Conn. characterset: utf8 TCP port: 3306 Uptime: 1 hour 35 min 58 sec Threads: 3 Questions: 233 Slow queries: 0 Opens: 3 Flush tables: 1 Open tables: 14 Queries per second avg: 0.040 -------------- この状態にしたところ、無事文字化けが解除されました。 MariaDB [test1]> insert into goods(goods_name, price) values('えええええ',101010); Query OK, 1 row affected (0.02 sec) MariaDB [test1]> select*from goods; +----+------------+--------+ | id | goods_name | price | +----+------------+--------+ | 1 | ?????? | 123 | | 2 | ?????? | 456 | | 3 | ?????? | 456 | | 4 | ???????? | 456 | | 5 | あああ | 123 | | 6 | えええええ | 101010 | +----+------------+--------+ 6 rows in set (0.00 sec) ありがとうございました。
guest

0

ヒントになりそうな回答が以前ありましたので紹介します。
SQL - MariaDBのテーブルに日本語のデータがいれられません。(26236)|teratail

投稿2016/06/22 01:41

Yasha_Wedyue

総合スコア830

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

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

echo

2016/06/22 02:05

ご丁寧にリンクまでありがとうございます。 先ほど、URLにあるやり方である >Windowsのコマンドプロンプトを使ってMariaDBと日本語をやり取りする場合、次の3つの文字コードをcp932にします。 character_set_client character_set_connection character_set_results を試してみましたが、やはり文字化けしてしまっているようです。 以下実行結果など MariaDB [test1]> show variables like 'character%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8 | | character_set_connection | cp932 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | cp932 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ MariaDB [test1]> drop database test1; Query OK, 1 row affected (0.16 sec) MariaDB [(none)]> create database test1 default character set utf8; Query OK, 1 row affected (0.03 sec) MariaDB [test1]> create table goods(id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> goods_name varchar(100), -> price INT(11), -> PRIMARY KEY(id) ) default charset=utf8; Query OK, 0 rows affected (0.15 sec) MariaDB [test1]> insert into goods(goods_name, price) values('あああ',123); Query OK, 1 row affected (0.04 sec) MariaDB [test1]> select * from goods; +----+------------+-------+ | id | goods_name | price | +----+------------+-------+ | 1 | ?????? | 123 | +----+------------+-------+ 1 row in set (0.00 sec)
guest

0

Windowsでやられているとのことなので、ソースがSJISでやられていてそれをUTF-8のMariaDBに入れようとしていて文字化けでエラーになっていないでしょうか?コンソール上からではなくMySQLWorkBenchのようなクライアントソフトから試されては如何でしょうか?

投稿2016/06/22 02:43

mryo0826

総合スコア77

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

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

echo

2016/06/22 03:38

>mryo0826様 ご回答有り難うございます。 MySQLWorkBench入れてみました。 INSERT文実行後のテーブルの中身を表示することができてないませんが…。 結果表示することが出来ましたら再度ご連絡いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問