はじめに
MySQLの学習を始めるにあたって、知識を整理する事と備忘録として書き止めていきます。
MySQLのインストール・バージョン確認
インストール
brew install mysql
インストールが成功したら、バージョン確認
mysql -- version
MySQLの起動・停止・状態確認
MySQLの起動
mysql.server start
MySQLの再起動
mysql.server restart
MySQLの停止
mysql.server stop
MySQLの状態の確認
mysql.server status
[SUCCESS! MySQL running]と表記されれば、起動中
[ERROR! MySQL is not running]と表記されれば、停止中
MySQLの動作確認
MySQLが起動している状態で以下コマンドを入力
root権限で動作しているかを確認するコマンド
mysql -u root
下記の様な出力が確認できたら成功
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22 Homebrew
Copyright (c) 2000, 2020, 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>
からSQL文を記述できる
ターミナルに戻る場合は以下の通りに記述
mysql> quit
###データベースの一覧表示
SQLのSHOW文を使う
SHOW DATABASES;
LIKEを使用して、表示するデータベース名のパターンを指定も可能
SHOW DATABASES LIKE 'パターン'
データベースの新規作成
SQLのCREATE文を使う
CREATE DATABASE データベース名;
※データベース名は一意であり、同じ名前のデータベースを作成しようとするとエラーとなる
CHARACTER SET オプションを使用すると、文字コードを設定できる
CREATE DATABASE データベース名 CHARACTER SET 文字コード;
IF NOT EXISTSオプションを使用すると、データベースの名前が重複していてもエラーが出ない様にできる
※処理は何も行われない
CREATE DATABASE IF NOT EXISTS データベース名
データベースの削除
SQLのDROP文を使う
DROP TABLE テーブル名;
データベースの文字コードを調べる
SHOWを使用してデータベースの文字コードを調べる事ができる
SHOW CREATE DATABASE データベース名
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| testDB | CREATE DATABASE `testDB` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
上記の場合、
DEFAULT CHARACTER SET=クライアント側で使用する文字コード(utf8mb4)
デフォルト暗号化 = No
テーブル操作に関する内容は以下のリンクからご確認頂けます
MySQLのテーブル操作
以下はプラスαであり、筆者は動作未確認
Sequel Proの導入
SequelProは、MySQLのデータをGUIで操作で管理するためのアプリケーション
Mac用みたいです
ここからダウンロードできる→ https://www.sequelpro.com/
※注意
MySQL8から認証プラグインがセキュリティ強化のため、アプリ側が対応していないと接続できない仕様になっている
解決策:mysqlの認証プラグインの変更
caching_sha2_password・・・mysql8からの認証プラグイン
↓
mysql_native_password・・・mysql8以前の認証プラグイン
- 現在のプラグインの設定を確認(以下のコマンドで変更する)
mysql> SELECT host, user, plugin FROM mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
- プラグインを変更する
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+
上記の様に設定が変更できれば、SequelProから接続が可能になる。