3. MySQLにログイン

ターミナル

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

  • Mac:「ターミナル.app」
  • Windows:「コマンドプロンプト」「PowerShell」
  • Linux:「ターミナル」
ターミナル.app(Mac)
Powershell(Win)

XAMPPのコマンドプロンプト

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

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

mysqlコマンド

ターミナルが起動したら、mysqlコマンドでバージョンを表示します。

mysql -V

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

mysql  Ver 15.1 Distrib 10.1.34-MariaDB, for Win32 (AMD64)

Macの場合

ターミナルが起動

MAMPでは「アプリケーション > ユーティリティ > ターミナル」を起動します。

バージョンの確認

ターミナルが起動したら、/Applications/MAMP/Library/bin/ に移動します。

cd /Applications/MAMP/Library/bin/

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

./mysql -V

mysqlコマンド

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

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

mysqlコマンドのパス

mysql コマンドを直接実行

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

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

mysql コマンドの確認

パス設定できたら、mysqlコマンドを直接実行してバージョンを表示します。

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

MySQLサーバにログイン

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で一般ユーザを作成します。

CREATE USER 'ユーザ名'@ホスト名 identified by 'パスワード';

ユーザ名test、パスワードをpassword、ホストlocalhostで設定した例です。

testユーザ作成例
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で、rootユーザからログアウトします。

exit

ユーザ名でログイン

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

mysql -u test -p

ユーザの確認

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

select user();

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

+--------------------+
| user()             |
+--------------------+
| test@localhost |
+--------------------+
1 row in set (0.00 sec)

ログアウト

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

exit