MySQL5.7初回ログイン時の注意点

初期パスワード

初期パスワードは、/var/log/mysql.logに記載されている。

[vagrant@localhost ~]$ mysql -uroot -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 10 
Server version: 5.7.25 

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql>

パスワードの設定

初期パスワードのポリシーがきついんで下記でとりあえず変える

mysql> set password for root@localhost=password('passwordPASSWORD@999');

ポリシーを確認

mysql> SHOW VARIABLES LIKE 'validate_password%'; # 再度パスワードの設定を確認
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

パスワード設定の変更

mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_policy=low;
Query OK, 0 rows affected (0.00 sec)

ようやく任意のパスワードに変更

mysql> set password for root@localhost=password('hogehoge');
Query OK, 0 rows affected, 1 warning (0.00 sec)

一苦労

参考

https://qiita.com/RyochanUedasan/items/9a49309019475536d22a

以上

[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)

違う感じに文字化けた。

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

以上

MySQLの勉強

MySQL用のGithubPageを作成した。

GithubPage

kindle unlimitedの本の内容をまとめていく。
少しずつ前に。

以上

XAMPPとIISの競合について

IISでローカルのPHPの開発環境を構築して勉強をしていたが
諸々考えてくとXAMPPで環境構築した方がはかどることに気づいて乗り換えた。

その時に,ポートが競合してハマったのでメモ。

現象

XAMPPインストール後に,Apacheを起動しようとすると
Port 80 in use by "Unable to open process" with PID 4!

と怒られる。

解決策

IISがポート80を使用していたため,inetmgrからIISを停止すれば解決する。

以上

MySQLで権限を付与する

GRANT文を使用する。

使用方法

グローバルレベル:
GRANT 権限 ON *.* TO user;

データベースレベル:
GRANT 権限 ON db_name.* TO user;

テーブルレベル:
GRANT 権限 ON db_name.table_name TO user;

カラムレベル:
GRANT 権限 (カラム1, カラム2, ...) ON db_name.table_name TO user;

以上

mysqlでデータベースの作成

デーモンの起動

$sudo systemctl start mysqld

rootで実行

$sudo mysql

データベースの作成

mysql> CREATE DATABASE djangodb

実行結果

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> create database djangodb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| djangodb |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

以上