macOSにMySQL環境を整える

MySQLをご存知でしょうか。MySQLはRDB(リレーショナルデーターベース)の一種のデーターベースシステムです。基本的にはオープンソースソフトウェアで、様々なWebサイトで広く使われています。みなさんが、よく耳にするUberAirBnb, Booking.comとこのTIPSTOCK!もMySQLを採用しています。

もし、自分でWebサービスを開発しようとした際には必ずと言っていいほどデーターベースを扱う必要があります。

例えば、会員登録の機能を開発した場合は氏名やメールアドレスなどの情報を保存しておかなければなりません。それらのデータを保存するのがデーターベースです。今回はmacOSでMySQLをセットアップする方法を解説します。

MySQLをインストールする (インストーラ)

MySQLをインストールする方法はいくつかあります。ここでは、インストーラーパッケージを使った方法を説明します。コマンドラインに抵抗のない方は、ここは飛ばして次のHomebrewのセクションをご覧ください。

まず、MySQLのWebサイトにアクセスします。ダウンロードに移動してください。

様々なエディションは並んでいるので分かりにくいですが、一番最後のMySQL Community Edition (GPL)を選択してください。

いきなり英語のページが表示され、さらに様々な項目が表示されますが安心してください。一番トップのMySQL Community Serverを選択してください。

またまた違うページが表示されます。先頭のmacOS 10.14 (x86, 64-bit), DMG Archiveをダウンロードしてください。

ダウンロードしたDMGファイルを開くと、mysql-x.x.xx-macos10.14-x86_64.pkgというファイルがあるはずです。これをクリックして起動しましょう。

すると、パッケージインストーラが起動してThis package will run a program to determine if the software can be installed. (このパッケージはソフトウェアをインストール可能か検証するプログラムを実行します)と表示されるのでcontinue を押して次に進みます。

パッケージインストーラのWelcomeスクリーンが表示されます。continueを押して先に進みます。

ライセンスへの同意画面が表示されます。このMySQLパッケージは通称GPLと呼ばれるオープンソースライセンスが適用されており無料で使用することができます。continueを押して次に進んでください。

To continue installing the software you must agree to the terms of the software license agreement. (ソフトウェアのインストールを続行するにはソフトウェアライセンスの同意する必要があります。)と確認がされます。Agreeを押して先に進みましょう。

次に、インストール先の決定を行います。特殊な事情がない限りはデフォルトのMacintosh HDで問題ありません。Installを押してインストールを開始します。

システムのパスワード入力を求められます。入力して認証してください。(macOSログイン時に入力するパスワードです)

ファイルのコピーが完了するとパスワードの設定に入ります。このパスワードはデーターベースを操作する時、データーベースにログインする時に必要となります。必ず覚えておきましょう。なお、先ほど入力したmacOSのパスワードとは別物です。

Use Strong Password Encryption (強強度パスワード暗号化を利用する)を洗濯してNextを押しましょう。

Please enter a password for the “root” user (rootユーザーのパスワードを入力してください)の欄にパスワードを入力します。最低8文字入力する必要があるので注意しましょう。パスワードを決定したらFinishを押して進みます。

再び、システム認証の画面が現れます。macOSのパスワードを入力してください。

Performing initial database setup…(データーベースの初期設定を行なっています)と表示されます。完了するまでしばらく待ちましょう。

このような画面になり、Thank you for installing MySQL Serverと表示されたらインストール完了です。

インストール(Homebrew)

brew update && brew install mysql

Homebrewを使ったインストールは上のコマンド一発で完了します。Homebrewをインストールしていない方はHomebrewのWebサイトからインストールをしてください。

mysql.server start

Homebrewでのインストールが完了したら、MySQLサーバーを起動します。上記のコマンドを実行してください。

$ mysql_secure_installation
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y ⮐

次に、MySQLのセットアップを行います。上のmysql_secure_installationコマンドを実行します。

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 ⮐

パスワード強度に関して聞いてきます。今回は、ローカル環境(自分のPC)で動かすので何でも構いません。数字を入力して指定してください。

Please set the password for root here.

New password:            ⮐

Re-enter new password:            ⮐

実際に、パスワードを入力します。先ほど指定したパスワードの条件に合うものを入力してください。

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y  ⮐

パスワード強度と決定するか確認が行われます。Yesで次に進みましょう。ここで、パスワード強度の条件を満たしていない場合は再びパスワードを聞いてきます。条件を見直して再入力してください。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

不明なユーザーを削除しますかと聞いてきます。yを押して次に進みます。

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y ⮐

リモートからrootへログインできないように設定するか聞いてきます。ローカル環境で動かしますが、念の為Yesで設定をしておきます。

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y ⮐ 

MySQLデフォルトで作成されるtestデーターベースを削除するか聞いてきます。特にいらないのでYesで削除します。

 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y ⮐ 

privilege tables を再読み込みします。Yesで先に進みましょう。

以上の作業でセットアップ完了です。お疲れ様でした。

MySQLサーバーの起動

セットアップが完了したところでMySQLを起動します。以下はパッケージインストーラでインストールした場合のやり方です。コマンドラインの場合は上述したようにmysql.server startで起動します。

MySQLサーバーの開始・停止作業は設定アプリから行います。macOSの設定を開き、MySQLという名前の項目があるはずなので、それを押しましょう。

このようなメニューが表示されます。今回は、インストール時にインストール完了後に自動的にサーバーを立ち上げる設定で行なったのでActive Instanceに表示されているMySQLが既に立ち上がった状態になっているかと思います。(緑のランプが付いている状態)サーバーを停止する場合はStop MySQL Serverのボタンを押します。

MySQLを触ってみる

Homebrewでインストールした場合

mysql -u root -p

インストーラでインストールした場合

 /usr/local/mysql/bin/mysql -u root -p

では、実際にMySQLを触れてみましょう。まずは、データーベースにログインをします。上のコマンドを実行しましょう。-uオプションはユーザー(今回はrootです) -pはパスワードを要求するという意味です。

すると、上のようにEnter passwordと、パスワード入力が求められます。セットアップ時に決定したパスワードを入力してください。コマンドラインで操作するとよくあることなのですが、パスワードを入力しても”・・・・”のような文字列は表示されません。何も表示が変わらなくてもパスワードは入力されているので安心してください。

CREATE DATABASE practice;

ログインが完了したら、早速データーベースを作成します。上のクエリを実行しましょう。クエリ?と思うかもしれません、クエリについて簡単に説明します。クエリ(Query)は問い合わせるという意味です。ここでは、データーベースシステムであるMySQLに問い合わせを行い、データを持ってくるということになります。

MySQL Workbenchを使ってデーターベースを操作してみる

さて、MySQLのデーターベース作成が完了したので、実際に使って見ようと思います。コマンドライン上でMySQLを扱えるのですが、いきなりはハードルが高いのでMySQL Workbenchというアプリを使います。

MySQL Workbenchをダウンロード

MySQL Workbenchはこのサイトからダウンロードできます。DOWNLOADを押してパッケージをダウンロードします。

Select Operating Systemが他のOSになっている場合は、macOSに設定してください。そして、青いDownloadボタンを押してください。

Oracleアカウントでのログインを求められますが、No thanks, just start my downloadを押してダウンロードを開始してください。

ダウンロードした*.dmgファイルを開くと上のような画面が表示されます。左側のMySQLWorkbenchをApplicationsディレクトリにドラッグ&ドロップしてください。

Workbenchを起動すると上のような画面になります。少し小さいですが+ボタンを押してデーターベースの設定を開きます。

MySQLの接続設定を行います。以下の項目を入力してOKを押してください。

  • Connection Name: Practice
  • Hostname: 127.0.0.1
  • Port: 3306
  • Username: root
  • Default Schema: practice

Practiceという名前のカードが表示されていることを確認したら、それを開いてください。

パスワード入力が求められるので、先ほど設定したパスワードを入力してください。

上のような画面が表示されたらインストール成功です。お疲れ様でした。

では、これからMySQLを簡単に操作してみたいと思います。


年齢 | age名前 | name所属 | belonging
20Shota Shimazu●●大学
19Kenta Sato▲▲大学
21Yoko Suzuki□□大学

データーベースではテーブルという表を扱います。今回は上のような名簿をデーターベースに記録しようと思います。

CREATE TABLE directory (
	age int,
    name varchar(255),
    belonging varchar(255)
);

上記のような表を作るには、上のSQLクエリーを実行します。クエリーとは問い合わせという意味で、SQLではデーターベースシステムに指示をするための言語という意味になります。念の為、クエリについて簡単に説明します。

CREATE TABLE [テーブル名] (
    列名1    型,
    列名2    型,
    列名2    型
);

CREATE TABLE命令は上のような構文です。CREATE TABLE = テーブルを作れというのが命令になります。そして ( )で囲われた部分で表の構造を定義します。列名は表の名前、年齢、所属といった項目名になります。みなさんがきになるのは型というものだと思います。MySQLでは項目についてデーター型というのを指定します。

これはコンピューターではよくあることで、その項目には数字(整数)が入るのか、文字が入るのかなどのデータの種類を指定します。

上述したクエリを入力して、実行します。少し分かりにくいですが電気のアイコンをクリックして実行します。

作成したテーブルを見てみます。上のスクリーンショットに従ってSchema→[テーブル名]の横のアイコンを押してみてください。先ほど作った表が表示されています。

INSERT INTO directory VALUES (
	20, 'Shota Shimazu', '●●大学'
);
INSERT INTO [テーブル名] VALUES (
	項目1, 項目2, 項目3
);

では、今度は作成したテーブルに実際にデータを入力してみます。上のクエリーを実行してください。文字列を入れる場合のみ” コーテーションで囲むことに注意してください。また、クエリーを実行する場合は先ほどと同じように電気のアイコンを押します。

SELECT * FROM directory;

今度は実際に入力したデータが入っているか確認します。確認を行うにはSELECT命令を実行します。*は全ての項目を意味します。また、今回のテーブル名はdirectoryです。

上のスクリーンショットのように表にデータが追加されていたら成功です。

今回はmacOSへのMySQLのセットアップと簡単な操作を行いました。MySQLはWebアプリ開発には必須となるスキルセットの一つです。今後もTIPSTOCK!ではデーターベースに関する記事を配信する予定です。是非、チェックしてください。

スポンサード

Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

こちらもどうぞ

Web開発にGoを使う理由

MORE