ターミナル
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 コマンドを直接実行
XAMPPやMAMPでmysqlコマンドを実行するとき、フォルダに毎回移動するのは面倒です。そこで、どこでも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