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