【MySQL】MySQL入門 - 概要とインストール(MacOS)・クエリの実行方法
MySQLはリレーショナルデータベースの管理システムです。
ここでは、MySQLの概要とインストール(MacOS)、基本的な使い方について解説します。
検証環境
MySQL
MySQLはRDB(リレーショナルデータベース)の管理システムです。
オープンソースのため、基本的に無料で利用することができます。
・公式ドキュメント
https://www.mysql.com/jp/
アプリケーションにMySQLを組み込むことで、高度なデータ管理を実現できます。
SQL
SQLはデータベース言語です。
データベースの定義やデータの操作(取得や追加、更新、削除等)などの命令文(クエリ)をSQLで記述します。
RDBMS(RDB管理システム)にはMySQL以外にPostgreSQLなど様々な種類があり、システムによってSQLに細かな違いがありますが、基本は同じのため、1つ覚えてしまえば他のRDBMSにも応用が効きます。
インストール
環境(OSやバージョン)によってインストール方法は異なるため、自身の環境に合わせて対応する必要があります。
以下はMacOSのインストール例になります。
※ インストール済みの方は対応不要です。
MacOS
1.ターミナルの起動
ターミナルを起動します。
次の手順からMySQLインストールのコマンド例を示しますが、角括弧([]
)で囲まれた行はコメントになりますので、実行の必要はありません。
2.Homebrewのインストール
Homebrewはパッケージ管理ツールです。
様々なパッケージ(アプリケーションやシステム)の管理を行うことができます。
インストール済みの方は『5.MySQLのインストール』までスキップしてください。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
[ パスワード等を入力するよう求められるので、ログイン時のパスワードを入力 ]
[ 『Installation Success』が表示されたら完了です。 ]
3.Homebrewのインストール確認
次のコマンドを実行し、Homebrewのバージョンが表示されれば正常にインストールできています。
$ brew -v
[ バージョンが表示されればOKです。(以下、表示例。) ]
Homebrew 4.2.7
4.Homebrewの最新版アップグレード
次のコマンドでHomebrewを最新版にアップグレードします。
$ brew upgrade
5.MySQLのパッケージ確認
Homebrewのインストール可能なMySQLのパッケージを確認します。
次のコマンドを実行し、mysql@バージョン
の項目がインストール可能なMySQLのパッケージです。
$ brew search mysql@
==> Formulae
automysqlbackup mysql++ mysql-client@5.7 mysql-connector-c++ mysql@5.7 mysqltuner
mysql mysql-client mysql-client@8.0 mysql-search-replace mysql@8.0 qt-mysql
==> Casks
mysql-connector-python mysql-shell mysqlworkbench navicat-for-mysql sqlpro-for-mysql
この例ではmysql@5.7
とmysql@8.0
がインストール可能であることが分かります。
6.MySQLのインストール
ここではmysql@8.0
をインストールします。
$ brew install mysql@8.0
※ インストールに少し時間がかかります。
7.パスの設定
MySQLコマンドの参照先を設定します。
インストール完了時に表示された次の10行目のコマンドを実行します。
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -u root
mysql@8.0 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have mysql@8.0 first in your PATH, run:
___ih_hl_start
echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc
___ih_hl_end
For compilers to find mysql@8.0 you may need to set:
export LDFLAGS="-L/usr/local/opt/mysql@8.0/lib"
export CPPFLAGS="-I/usr/local/opt/mysql@8.0/include"
For pkg-config to find mysql@8.0 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/mysql@8.0/lib/pkgconfig"
To start mysql@8.0 now and restart at login:
brew services start mysql@8.0
Or, if you don't want/need a background service you can just run:
/usr/local/opt/mysql@8.0/bin/mysqld_safe --datadir\=/usr/local/var/mysql
なお、表示内容は環境によって異なる場合がございます。
ご自身のターミナルに表示された内容を実行するようにしてください。
$ echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc
8.設定ファイルの再読み込み
設定ファイルをsource
コマンドで再読み込みし、変更内容を反映します。
$ source ~/.zshrc
9.MySQLのインストール確認
mysql
コマンドでインストールしたバージョンを確認します。
$ mysql --version
mysql Ver 8.0.36 for macos14.2 on x86_64 (Homebrew)
上記のようにバージョンが表示されれば、インストールに成功です。
起動と停止
MySQLの起動と停止は環境(OSやバージョン)によって起動方法は異なります。
ご自身の環境に合わせて対応する必要がありますが、以下にMacOSの例を示します。
MacOS
起動
起動するには次のコマンドを実行します。
$ mysql.server start
Starting MySQL
. SUCCESS!
停止
MySQLを停止するには次のコマンドを実行します。
$ mysql.server stop
Shutting down MySQL
. SUCCESS!
状態確認
次のコマンドでMySQLの状態を表示するには次のコマンドを実行します。
[起動中の場合]
$ mysql.server status
SUCCESS! MySQL running
[停止中の場合]
$ mysql.server status
ERROR! MySQL is not running
接続と切断
MySQLに接続する方法はいくつかありますが、ここではコマンドラインでの方法を示します。
接続
mysql
コマンドを使用します。
$ mysql -u root -p
Enter password:
... 省略 ...
mysql>
u
オプションで接続ユーザーを指定します。
rootユーザーは全ての権限を持つデフォルトユーザーです。
p
オプションは接続方法をパスワード認証にするオプションです。
接続が成功するとmysql>
のように入力の待機状態になります。
また、初期設定ではrootユーザーのパスワードが未設定の場合があります。
その場合は次のように、p
オプション無しで接続します。
$ mysql -u root
... 省略 ...
mysql>
切断
切断するにはMySQL接続中にexit
コマンドを実行します。
mysql> exit
Bye
$
パスワード設定
MySQLの初期状態ではrootユーザーのパスワードが未設定の場合があります。
セキュリティのため、任意のパスワードに設定しましょう。
1.データベースの選択
ユーザー情報を持つデータベースをuse mysql
で選択状態にします。
mysql> use mysql;
Database changed
2.パスワード設定
次のパスワード設定クエリを実行します。
パスワード
の部分は任意のパスワードに変更してください。
mysql> ALTER user 'root'@'localhost' identified BY 'パスワード';
Query OK, 0 rows affected (0.03 sec)
※ パスワードは8文字以上などの一定の条件を満たす必要があります。
設定後はパスワード認証接続のみ可能になります。
mysql> exit
Bye
[パスワード無しは拒否される]
$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[パスワード有りのみ接続可能]
___ih_hl_start
$ mysql -u root -p
___ih_hl_end
Enter password:
... 省略 ...
mysql>
クエリ
クエリはSQLで記述した命令文です。
クエリをMySQLで実行することで、様々な操作を行えます。
書き方は命令によって異なりますが、文末にセミコロン(;
)を記述します。
クエリ;
例えば、データベース一覧を表示するSHOW DATABASES
を実行してみましょう。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
初期データベースの一覧が表示されればクエリの実行に成功です。
SQLクエリは他にも様々な操作を実現します。