3. MySQLにログイン

MySQLコマンド

MySQLコマンドを実行するにはターミナルを利用します。

OS アプリ
macOS ターミナル.app
Windows コマンドプロンプト、PowerShell
Linux ターミナル
ターミナル.app(Mac)
Powershell(Win)

XAMPPのコマンドプロンプト

コマンドプロンプトを開く

XAMPPの場合、「XAMPP Control Panel」の【Shell】でコマンドプロンプトを開きます。

バージョン確認

mysql コマンドでバージョンを表示します。

ターミナル
mysql -V

MySQLのバージョンが表示されます。

ターミナル
mysql  Ver 15.1 Distrib 10.1.34-MariaDB, for Win32 (AMD64)

macOSの場合

バージョンの確認

MAMPの mysql コマンドのパスを確認します。MySQL8.x のパスは以下のパスになります。

/Applications/MAMP/Library/bin/mysql80/bin

bin フォルダを右クリックで「フォルダーに新規ターミナルタブ」を選択します。

ターミナルが開きました。bin フォルダに移動した状態になっています。

以下のようにターミナルで移動しても構いません。

ターミナル
cd /Applications/MAMP/Library/bin/mysql80/bin

バージョン確認

mysql コマンドでバージョンを表示します。

ターミナル
mysql -V

MySQLのバージョンが表示されます。

ターミナル

./mysql  Ver 14.14 Distrib 5.7.32, for osx10.12 (x86_64) using  EditLine wrapper

mysqlコマンドのパス

mysql コマンドを直接実行

mysql コマンドを実行するとき、フォルダに毎回移動するのは面倒です。そこで、どこでもmysql コマンドを実行できるように、ファイルパスを設定します。

詳しくは、「XAMPP・MAMPで開発環境構築」のカリキュラムを参考に設定してください。

mysql コマンドの確認

パス設定したら任意の場所で mysql コマンドしてバージョンを表示します。

ターミナル

mysql -V
mysql  Ver 8.0.23 for osx10.16 on x86_64 (Homebrew)

MySQLサーバにログイン

ログインコマンド

MySQLサーバにログインする基本コマンドです。

ターミナル
mysql -u ユーザ名 -p

オプションは以下のとおりです。

オプション 説明 備考
-u ユーザ名 MySQLに登録したユーザ名 rootが最高権限
-p パスワード MySQLに登録したパスワード 省略するとパスワードなし

ホスト名を使う場合

-h オプションを利用すると、外部のMySQLサーバにログインできます。なお、-h オプションを利用しない場合は、localhost*(127.0.0.1) となります。

ターミナル
mysql -u ユーザ名 -p -h ホスト名

ログイン

rootユーザでログイン

root ユーザでMySQLサーバにログインしてみましょう。

ターミナル
mysql -u root -p

パスワード入力

パスワードを入力してログインします。

ターミナル
Enter password:
  • パスワードがない場合は、そのまま Enterキーを確定します。
種類 パスワード
XAMPP(Windows) なし
MAMP(Mac) root
通常インストール MySQLインストール時に設定

ログインの確認

MySQLサーバにログインが成功するとターミナルに mysql> のような表示になります。この状態でSQLを入力します。

MySQLの場合

mysql>

MariaDBの場合

MariaDB[(none)]>

SQLコマンドの実行

ターミナルにSQLを入力してみましょう。

SQLコマンドの基本

ターミナルに表示された > のあとにSQL文を入力します。SQL文の行末には ; を入力し、Enterキーで確定します。

ターミナル
mysql> SQL文;

データベース一覧

SHOW DATABASES はデータベースの一覧を表示します。

ターミナル
SHOW DATABASES;
  • SQLは大文字が基本ですが、ターミナル入力では小文字でも構いません。
ターミナル
> show databases;
+--------------------+
| Database           |
+--------------------+
| default            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

入力を間違えた場合

入力を間違えた場合は、; を入力して確定してから、もう一度 SQLを入力します。エラーが出ても特に問題はありません。

ターミナル
> showdatbase;
ERROR 1064 (42000): You have an error in your SQL syntax; 
...
> show databases;

ユーザの作成

一般ユーザ作成

DB操作ではセキュリティを考慮して一般ユーザを作成して、アクセス権を制限します。

本番環境でrootユーザは利用しない

本番環境では root ユーザ(管理者権限)で直接操作せず、新規で一般ユーザを作ります。

ユーザ追加

CREATE USER で一般ユーザを作成します。

項目
ユーザ名 test
パスワード password
ホスト localhost
ターミナル
CREATE USER 'ユーザ名'@ホスト名 identified by 'パスワード';
ターミナル
create user 'test'@localhost identified by 'password';

パスワード変更

パスワードは SET PASSWORD で変更できます。testユーザのパスワードを password に変更した例です。

ターミナル
set password for 'test'@'localhost' = 'password';
パスワードポリシーが厳しい場合

MySQLのバージョンによってはパスワードのポリシーが厳しくエラーになります。パスワードポリシーを低くするには、validate_password を実行します。

ターミナル
set global validate_password.policy=LOW;

ユーザ権限の設定

GRANT でデータベースのユーザ権限を設定します。

ターミナル
GRANT 権限 ON *.* to 'ユーザ名'@localhost;

test ユーザにすべてのDB権限を付与する例です。

ターミナル
grant all privileges on *.* to 'test'@localhost;

アクセス権限の確認

ログアウト

exitでログアウトします。

ターミナル
exit

ユーザ名でログイン

作成したユーザ名でMySQLサーバにログインします。 ※「test」ユーザでログインした場合

ターミナル
mysql -u test -p

ユーザの確認

ログインできたら、SQLでユーザを確認します。

ターミナル
select user();

ユーザが確認できました。

ターミナル
+--------------------+
| user()             |
+--------------------+
| test@localhost |
+--------------------+
1 row in set (0.00 sec)

ログアウト

testユーザでログインを確認できたら、ログアウトしておきましょう。

ターミナル
exit