[MySQL]データベースの保管場所

本に倣って学習を進めていくうえで,サンプルデータベースが入っていなかった。

公式サイトからデータベースのインポートを行ったのでメモ

ファイルの実体

ファイルの実体は,C:/xampp/mysql/dataにあった。
my.iniの[mysql].datadir項目を参照すればわかる。

# The MySQL server
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"

公式サイトからサンプルデータをダウンロード

https://dev.mysql.com/doc/index-other.htmlからダウンロードを行う。

解凍と実行

$unzip world.sql.zip
Archive: world.sql.zip
inflating: world.sql

解凍後のsqlファイルを実行。

# mysql -u nekonisi -p< world.sql
Enter password: *********

実行後確認

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| book_diary_db |
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| test |
| world |
+--------------------+
7 rows in set (0.00 sec)

文字コードとか大丈夫かな?

以上

【MySql】文字化け解消した

深夜のファミレスで,ヤリチンが女達にガチ説教食らっている横で文字化け解消した。

SHOW VARIABLES LIKE '%CHAR%';

これで環境内の文字コードを確認できる。
下記みたいな感じ。

| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | cp932 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | cp932 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

で,ここからが本題。
これらの設定は,テーブル作成時に活きてしまうので
設定を行った後に,テーブルの再作成,データベースの再作成を行う必要がある。

または,ALTERコマンドで設定を変更する必要がある。

ALTER DATABASE データベース名 DEFAULT CHARACTER SET 文字コード

こんな感じ。

 

ちなみに各種設定項目の意味は,下記の通り

項目名 意味
character_set_client クライアントから送信する際の文字コード
character_set_connection クライアントから送信した文字コードの変換先
character_set_database データベースの文字コード
character_set_filesystem ファイルシステムの文字コード
character_set_results クライアントへの結果送信に使用する文字コード
character_set_server サーバの文字コード
character_set_system システムで使用する文字コード
character_sets_dir 文字コード設定が保存されているフォルダの場所

参考にしたサイト

よくよく聞いたら,女が学校辞めて働かずに彼氏の家に入り浸ってて,
家事もしないうんこで
男はサッカー日本代表まで行ったけど,ケガで挫折して高校中退してしまったが,めげずにきちんと働いて,その上,女を養ってるクソイケメンだった。

女友達だと思ってたらご親族の方々で,女に対する説教だった。

イケメン,もっとまともな女性とお付き合いしたほうがいいと思うよ。
その女,口悪いし,自分に甘いし,その上,やべえ位アホだぞ。

[XAMPP]日本語の文字化け対策

XAMPPのMySQLで勉強をしているのだけれども,
日本語文字列が???と表示されているので解消法を記述。

xamppの管理画面からMySQL > Configをクリック

my.iniを下記のように修正。(デフォルトのエディタがVimだったので優越感)

18行目~22行目

[client]  
# password = your_password  
port = 3306  
socket = "C:/xampp/mysql/mysql.sock" 
default-character-set = utf8

151~156行目

## UTF 8 Settings 
init-connect=SET NAMES utf8 
collation_server=utf8_unicode_ci 
character_set_server=utf8 
skip-character-set-client-handshake 
character_sets-dir="C:/xampp/mysql/share/charsets"

158~161行目

[mysqldump] 
quick 
max_allowed_packet = 16M 
default-character-set = utf8

163~167行目

[mysql] 
no-auto-rehash 
# Remove the next comment character if you are not familiar with SQL 
#safe-updates 
default-character-set = utf8
  • すでに作成してある行には反映されないので作り直す。
    早めに気づいてよかった。

修正前

MariaDB [dekirusample]> select * from members; 
+-------+------+------+ 
| memno | name | pref | 
+-------+------+------+ 
| 1 | ???? | ??? | 
| 2 | ???? | ??? | 
| 3 | ???? | ??? | 
| 4 | ???? | NULL | 
+-------+------+------+ 
4 rows in set (0.01 sec)

修正後

直らなかった…。

再チャレンジ

どうやらxamppのshellの文字コードはcmdに引っ張られるらしい,
C:\xampp\xampp_shell.batにchcp 65001を記述し再起動。

MariaDB [dekirusample]> select * from members; 
+-------+------+------+ 
| memno | name | pref | 
+-------+------+------+ 
| 1 | ```` | ``` | 
| 2 | ```` | ``` | 
| 3 | ```` | ``` | 
| 4 | ```` | NULL | 
+-------+------+------+ 
4 rows in set (0.00 sec)

違う感じに文字化けた。

どうしても直らないので後日調査,
本質じゃないところでつまづいているなぁちくしょー

以上