【MySQL】MySQL入門 - 概要とインストール(MacOS)・クエリの実行方法

【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.7mysql@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クエリは他にも様々な操作を実現します。