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

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

新規登録して質問してみよう
ただいま回答率
85.35%
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

解決済

2回答

1823閲覧

mariaDB(MySQL)のテーブルをコンソールで表示したときに文字化けしてしまう。

teracot

総合スコア1

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クリップ

投稿2021/10/07 01:02

編集2021/10/07 03:24

XamppのMariaDBを使って、データベースを作り、テーブルの行を確認したいのですが、
文字化けしてしまいます。
XAMPP for WindowsというXAMPPについているshellで
以下の流れで実行しました。

#データベースを作ったときのコマンド MariaDB [(none)]> CREATE DATABASE selfphp3 CHARACTER SET utf8mb4; Query OK, 1 row affected (0.001 sec) #データベースなどの文字コードの確認 MariaDB [selfphp3]> show variables like'chara%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.001 sec) #テーブルの作成 MariaDB [selfphp3]> CREATE TABLE member ( -> id INT PRIMARY KEY AUTO_INCREMENT, -> nam VARCHAR(255) NOT NULL, -> sex CHAR(1) NOT NULL DEFAULT 'm', -> old INT NOT NULL,enter DATE NOT NULL, -> memo VARCHAR(255) DEFAULT NULL); Query OK, 0 rows affected (0.020 sec) #テーブルの確認 MariaDB [selfphp3]> SHOW FIELDS FROM member; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nam | varchar(255) | NO | | NULL | | | sex | char(1) | NO | | m | | | old | int(11) | NO | | NULL | | | enter | date | NO | | NULL | | | memo | varchar(255) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ #テーブルへ行の挿入 MariaDB [selfphp3]> INSERT INTO member VALUES -> (1,'山田太郎','m',20,'2021-04-01',NULL); Query OK, 1 row affected, 1 warning (0.030 sec) #行の確認 MariaDB [selfphp3]> SELECT * FROM member; +----+----------+-----+-----+------------+------+ | id | nam | sex | old | enter | memo | +----+----------+-----+-----+------------+------+ | 1 | ?R?c???Y | m | 20 | 2021-04-01 | NULL | +----+----------+-----+-----+------------+------+ 1 row in set (0.001 sec)

##試したこと
・DBの文字コードなどをutf8mb4にした。
・XAMPP for Windowsコマンドプロンプトの文字コードをutf-8に変えてみた。→改善せず。
イメージ説明
・DBの文字コードをutf8に戻してみた。→文字化けが???になった。

#文字コードがutf8のデータベースselfphp2 #フィールドの確認 MariaDB [selfphp2]> SELECT * FROM member; +----+------+------+-----+------------+------+ | id | nam | sex | old | enter | memo | +----+------+------+-----+------------+------+ | 1 | ???? | ? | 20 | 2021-04-01 | NULL | +----+------+------+-----+------------+------+ 1 row in set (0.000 sec) #文字コードの確認 MariaDB [selfphp2]> SHOW VARIABLES LIKE 'chara%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.001 sec)

色々調べて試行錯誤しましたが、もう力尽きてしまいました。もうよくわからないです。どうかお助けください。
どうかご回答、ご教授よろしくお願い致します。


追記↓↓↓
以下追加で試したことです。

##phpMyAdmin
phpMyAdminから、mysqlクライアントで作ったテーブルを見ると、以下のように文字化けしていました。
イメージ説明
しかし、phpMyAdminを使って作ったテーブルを見ると、以下のように文字化けしていませんでした。
イメージ説明

##コマンド文で .txtに出力
教えていただいたコマンド文入力。
mysql -u root -p selfphputf8mb4 --execute="SELECT * from member" > result.txtすると
xamppフォルダにresult.txtファイルが作成されました。その中身を見ると、以下のように文字化けしてしまっていました。

id nam sex old enter memo 1 ???? m 20 2021-04-01 NULL

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

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

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

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

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

maisumakun

2021/10/07 01:04

コンソール「以外」の方法でアクセスしたら正常に表示されますか?
m.ts10806

2021/10/07 01:20

同梱のphpMyAdminで十分かと
teracot

2021/10/07 01:43

早いレスポンスありがとうございます! phpMyAdminでMySQLのデータベースを参照できるんですね! なんとmysqlが起動しなくなったので(泣)Xamppを再インストールしてから、phpMyAdminでデータベースを参照してみようと思います。。
m.ts10806

2021/10/07 02:08

むしろphpMyAdminはMySQLを参照するための専用ツールです。
teracot

2021/10/07 02:12

そうなんですね 「独習PHP第4版」で学習しているのがですが、そういったことは書いてなくて初めて知りました。 XAMPPを再インストールし終わったら早速使ってみようと思います。 教えていただきありがとうございます!
m.ts10806

2021/10/07 03:36

再インストールする必要はそもそもなかったということにはなります。 悪いのはあくまでWin標準のコマンドプロンプトであって、XAMPPツール群の問題ではないです。
guest

回答2

0

mysqlクライアントは、設定が面倒な割に使いづらいアプリのひとつです
そもそもがDBは別アプリからの参照を前提にしているので
クライアントにこだわるのは無駄だと思います
(とくに素人は手を出してはいけません)

どうしてもというならリダイレクトで試してみてください

cmd

1mysql -u root -p mydb --execute="SELECT * from tbl" > result.txt

投稿2021/10/07 01:37

yambejp

総合スコア116724

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

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

maisumakun

2021/10/07 01:45

特に、「Windowsのcmdと組み合わせて使う」なんてのはまっさきに避けますね。
teracot

2021/10/07 03:11

解答ありがとうございます。検索すると 「mysqlクライアント」=「mysqlコマンドラインクライアント」と出たので、 「mysqlクライアント」=「Xampp for Windows shell」であってますか? もちろんこだわっているつもりは全くなくて、学習中の参考書「独習PHP第4版」どおりに進めて行って、今この問題にぶちあたってしまってしまっています。。。 貼ってくださったコマンド文を ``` mysql -u root -p selfphputf8mb4 --execute="SELECT * from member" > result.txt ``` として、DBからexitしてから実行したら、xamppフォルダの中にresult.txtができました! その中を見ると ``` id nam sex old enter memo 1 ???? m 20 2021-04-01 NULL ``` と文字化けをしてしまっていました。 もしかしたらと思って、WindowsPowerShellでも試してみましたが同じく文字化けしていました。 プロの方はどうやってテーブルを作っているのか教えていただけませんか? mysqlクライアントを使うのはあんまり一般的ではないのでしょうか?
maisumakun

2021/10/07 03:18

> 文字化けをしてしまっていました。 入れる時点でミスをしてしまっていて、登録されたデータが既に文字化けしたもの、という可能性もあります(そうなればどんなツールでも回復不能です)。 まずはphpMyAdminなどで、まともなデータが入っているか確認してみましょう。
teracot

2021/10/07 04:05

「登録されたデータが既に文字化けしたもの」。。 https://teratail.com/questions/26236をみると まさにそのような問題だったんだと思います。完全には理解していないのですが。 解決することができました。何時間も検索しつづけたのがようやく報われました! maisumakun様、m.ts10806様、yambejp様ありがとうございました。
guest

0

自己解決

テラテイルのスクリプトが紹介してくれた関連した質問を見回ると、

https://teratail.com/questions/26236に同じ症状のような人がいました。

そのとおりにすると無事解決できました。
イメージ説明

文字コードの問題は本当にややこしいです。
もっとよく探せば、同じ質問を見つけれたかもしれません。
重複した質問をしてしまい申し訳ないです。

教えていただいたphpMyAdminなども併用して学習を続けていこうと思います。

答えてくださったmaisumakun様、m.ts10806様、yambejp様、本当にありがとうございました。勉強になりました。

投稿2021/10/07 03:54

teracot

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問