20200806のLinuxに関する記事は3件です。

自宅の外から自宅のラズパイにVPN(WireGuard)でアクセスしよう

はじめに

パンデミックが発生した後、2020/04にDELL XPS 13(9300)を購入しました。
ラップトップPCとして、性能に不満はないです。
画面は広い(1920x1200)し、キーボードも良いですし、言うことないです。

ただ、巨大なデータを処理をする上では、やはり力不足ですし、
自宅の デスクトップPC を使いたいと思うことが出てくるはずです。
(今は仕事で外出することが一切ないので今後を見越してのことです)
そこで、自宅外から自宅内にVPNを張ってログインできる環境を作っておくことにしました。

VPN に何をつかうか?

最初は、自宅ルータのYamaha RTX830をVPNサーバとして、でiPhoneをVPNクライアントとして
接続を試したのですが、全然接続できませんでした...

たぶん、IKEv1/v2の違い、ISPのフィルタ、携帯事業者のフィルタ、設定間違い...などが
考えられると思うのですが、もう疲れました。

そう思ってGoogle先生に聞いてみると、WireGuardでVPNごしに自宅サーバ開発できる環境を作った
WireGuardを使ったVPN構築方法をとても分かりやすく解説してくださっていました。

そこで、Yamaha RTX830の配下に置いたラズパイ(Raspberry Pi 4 Model B)に
WireGuardをインストールして、宅外に持ち出したDELL XPS 13(9300)(Ubuntu 20.04-LTS)と
VPNを構築することにします。

1. Wireguardのインストール

WireGuardはPeer to Peer接続なので、サーバ/クライアントの概念はありません。
つまり、WireGuard はラズパイにもラップトップPCにもインストールする必要があります。

1-1. ラズパイへのWireguardインストール

ラズパイへのインストール方法については、WireGuard-Raspiに説明してくれています。

$ sudo apt-get update
$ sudo apt-get upgrade 
$ sudo apt-get install raspberrypi-kernel-headers
$ echo "deb http://deb.debian.org/debian/ unstable main" | sudo tee --append /etc/apt/sources.list.d/unstable.list
$ sudo apt-get install dirmngr 
$ wget -O - https://ftp-master.debian.org/keys/archive-key-$(lsb_release -sr).asc | sudo apt-key add -
$ printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' | sudo tee --append /etc/apt/preferences.d/limit-unstable
$ sudo apt-get update
$ sudo apt-get install wireguard 
$ sudo reboot

1-2. Ubuntu 20.04-LTSへのWireguardインストール

aptでインストールできるので簡単です。

$ sudo apt update
$ sudo apt install wireguard

2. Wireguardのためのパケット転送設定

Wireguardのためのパケット転送設定があります。

2-1. ラズパイでのWireguard設定

パケット転送できるように設定しておきます。
これは、WireguardはUDPでP2Pのトンネルを張るのですが、
自宅外のラップトップPCからホームネットワークにアクセスするために、
ラズパイ側はNATボックスとしても動作させるからです。

$ sudo perl -pi -e 's/#{1,}?net.ipv4.ip_forward ?= ?(0|1)/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf 
$ sudo reboot

きちんと設定されたかどうか確認します。

$ sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 1

3. VPN用鍵生成

VPN用の秘密鍵と公開鍵を生成します。
ラズパイとラップトップPCの両方で鍵を生成します。

プロトコルとしてはP2Pですが、
便宜上、ラズパイ側をserverとし、ラップトップPCをclientとしておきます。

3-1. ラズパイ側の鍵生成

$ mkdir wgkeys
$ cd wgkeys/
$ umask 077
$ wg genkey > server_private.key
$ wg pubkey > server_public.key < server_private.key

3-2. ラップトップPC側の鍵生成

$ mkdir wgkeys
$ cd wgkeys/
$ umask 077
$ wg genkey > client_private.key
$ wg pubkey > client_public.key < client_private.key

4. VPN用鍵設定

4-1. ラズパイ側の鍵設定

/etc/wireguardディレクトリを作成し、そこに設定ファイル(wg0.conf)を置きます。

$ sudo mkdir /etc/wireguard/
$ sudo vim /etc/wireguard/wg0.conf
[Interface]

# 1. VPNの仮想的なネットワークで使うIPアドレスを設定します。
# 今回はわかりやすいように10.0.0.1/24で設定しました。
Address = 10.0.0.1/24

# 2. WireGuard を listen させるポート。ルータのポート開放に使うので適当に変えます。
# ポート番号は何でも良いです。
ListenPort = 1194

# 3. wgコマンドで生成した秘密鍵(サーバ側)を文字列で記入します。
PrivateKey = <server private key>

# 4. replace eth0 with the interface open to the internet (e.g might be wlan0 if wifi)
# 起動時と終了時に動くコマンドがかけます。ひとまずnatするための呪文だと思っておきましょう。
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]

# 5. wgコマンドで生成した公開鍵(クライアント側)を文字列で記入します。
PublicKey = <client public key>

# 6. わかりやすくするためにクライアントの仮想IPを 10.0.0.2/32 に設定します。
# サーバへの接続許可IPに追加します。
AllowedIPs = 10.0.0.2/32

複数の Peer から接続できるようにするためには、
[Peer]の項目をそのクライアントの分だけ増やしてあげればOKです。

4-2. ラップトップPC側の鍵設定

ラップトップPC側もラズパイと同様に設定します。

$ sudo mkdir /etc/wireguard/
$ sudo vim /etc/wireguard/wg0.conf

ただし、ラップトップ側にはNAT設定は不要です。

[Interface]

# 1. wgコマンドで生成した秘密鍵(クライアント側)を文字列で記入する
PrivateKey = <client private key>

# 2. クライアントの仮想IP
Address = 10.0.0.2/24

[Peer]

# 3. serverの公開鍵を文字列で記入します
PublicKey = <server public key>

# 4. サーバの仮想IP(10.0.0.1/32)を、クライアントへの接続許可IPに追加します。
# あと、ホームネットワークのアドレス空間も追加します。
AllowedIPs = 10.0.0.1/32,192.168.0.0/24

# 5. サーバのグローバルIP(FQDNでも良い)と
# ListenPort(サーバ側で1194と決めたやつ)を設定します。
Endpoint = <server global ip address>:1194

5. Wireguard(ラズパイ)の自動起動

ラズパイ(サーバ)側で以下のようにして WireGuard を起こします。

$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ラズパイの起動時にWireGuardも自動的に開始するようにします。

$ sudo wg-quick down wg0
$ sudo systemctl enable wg-quick@wg0
$ sudo systemctl start wg-quick@wg0

6. ホームルータでのポート転送

Yamaha RTX830でポート転送の設定をしておきます。
外側で受信したポート番号11194をラズパイのポート番号1194に変換して転送します。

pp select 1
ip filter 200100 pass * <ラズパイのIPアドレス> udp * 1194
pp1# ip pp secure filter in ... 200100
no pp select
nat descriptor type 1000 masquerade
nat descriptor masquerade static 1000 1 <ラズパイのIPアドレス> udp 11194=1194

お使いのホームルータに合わせて設定してください。

7. VPN接続・切断

ラップトップPCからWireguardでVPN接続するときは、
以下のようにコマンドを実行します。

$ sudo wg-quick up /etc/wireguard/wg0.conf

VPN接続を切断するときは以下です。

$ sudo wg-quick down /etc/wireguard/wg0.conf

まとめ

以上で、自宅外から自宅のホームネットワークに接続できるようになりました。
これで、デスクトップPCにアクセスできるようになり、膨大なデータ処理も快適にできます。

デスクトップPCを常時起動させておくのはちょっと...という場合は、

を読んでみてください。

References

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

デプロイ方法②(EC2環境構築/Linux/MySQL設定)

※デプロイの方法の手順② 今後の自分のメモ用に

EC2インスタンスの環境構築

設定用のツールをインストール

最初にyumというコマンドを使ってこのサーバに元々あるプログラムをアップデートします。こうしたプログラムをパッケージと呼びます。

yumコマンド

Linuxにおけるソフトウェア管理の仕組みです。MacOSにとってのhomebrewと同じ役割を果たします。yumコマンドを利用することで、yumの管理下にあるプログラムのバージョンを管理したり、一括でアップデートしたりできます。

パッケージ

LinuxOS下における、ある役割/機能をもったプログラムの集合です。ソフトウェアとも、ライブラリとも呼べます。
あくまでもLinuxOSでは、ある役割/機能をもったプログラムの集合のことをパッケージと呼ぶよ、ということです

パッケージをアップデート

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y update

その他環境構築に必要なパッケージを諸々インストール

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl

-yコマンドについて

-y はyumコマンドのオプションです。yum install などのコマンドでは、本当にインストールして良いのか [y/n]のようにYes or Noが問われます。この場合はYキーを押してEnterキーを押せば正常どおりインストールが行われます。しかし、初見であったり誤ってYキー以外を押してしまう場合もあります。 ここでは確実にインストールするために、予めオプションで-yを設定する事で全ての問いにYesで自動的に答えるように設定してコマンドを実行しましょう。

もし誤ってオプションを忘れてしまうと下記のような問いが発生しますので、Yキーを押し次にEnterキーを押してインストールを完了して下さい。

総ダウンロード容量: 120 M
Is this ok [y/d/N]: 

Node.jsをインストール

EC2上でJavaScriptを動かすためにNode.jsというものをインストールします。

Node.js

サーバーサイドで動くJavaScriptのパッケージです。今後のデプロイに向けた作業の中で、CSSや画像を圧縮する際に活用されます。

[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash -
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs

こちらも確認画面が出てきた場合は、「y」→returnキーで確定してください。

これでNode.jsのインストールは完了です。

rbenvとruby-buildをインストール

rbenvとruby-buildをインストールします。Macの環境構築の際にも利用しましたが、改めて簡単に説明しておきます。
rbenvとruby-buildは、Rubyのバージョンを管理する際に組み合わせて使うツールになります。これらはRubyをインストールする前に、インストールする必要があります。
ruby-buildはrbenvのプラグインであり、ruby-buildによってRubyの様々なバージョン(2.0.0など)をインストールすることができます。
rbenvを使用することでrubyのバージョンを切り替えることできます。

#rbenvのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 
#パスを通す
[ec2-user@ip-172-31-25-189 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 
#rbenvを呼び出すための記述
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
#.bash_profileの読み込み
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile
#ruby-buildのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
#rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  

1つ目のコマンドは、gitからrbenvをクローンしています。
2つ目と3つ目のコマンドは、パスを通す際に必要なコマンドです。パスを通すとは、どのディレクトリからもアプリケーションを呼び出せる状態にするということです。
そして、4つ目のコマンドで、設定したパスを読み込んでいます。
5つ目のコマンドは、gitからruby-buildをクローンしています。
最後のコマンドは、使用しているRubyのバージョンにおいて、gemのコマンドを使えるようにするために必要なコマンドです。

これでrbenvとruby-buildのインストールは完了

Rubyをインストール

インストールするRubyのバージョン、自身のアプリケーションで使っているRubyのバージョンによって適宜変更してください。

[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.5.1
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.5.1
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  #rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ ruby -v # バージョンを確認

1つ目のコマンドで、Rubyの2.5.1のバージョンをインストールしています。Rubyのインストールには時間がかかります。ターミナルに「Installing ruby-2.5.1...」といった表示が出たまま止まって見えますが、そのまま待ちましょう。
2つ目のコマンドは、EC2インスタンス内で使用するRubyのバージョンを決めるものになります。
3行目では再びRehashを行っています。
最後にruby -vコマンドを打ち込み、バージョンを確認しましょう。

EC2インスタンス内の環境構築が完了

MySQLの設定

データベースの種類

一口にデータベースと言っても、いくつかの種類があります。以下にその種類を示します。

・階層型データベース
・ネットワーク型データベース
・リレーショナルデータベース
この中で最も利用されているのが、リレーショナルデータベースです。
エクセルの表のような形で情報を整理し、管理することができます。そして、このリレーショナルデータベースを管理するソフトウェアはリレーショナル・データ・ベース・マネジメント・システム(RDBMS)と呼ばれます。

そんなRDBMSの中でも代表的なものの一つが、MySQLです。

MySQL

MySQLは、Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用することができます。
Ruby on Railsと合わせ利用することができ、本カリキュラムでは一貫してMySQLを利用しています。

Oracle社のMySQL紹介ページ
MySQL公式ページ

1.png

一つのEC2インスタンスに、Railsをはじめ必要なソフトをすべてインストールしています。MySQLもそのうちの一つです。上の図で「データベースサーバー」と書かれているものが、MySQLに当たります。MySQLのようなソフトはデータベースの管理を行うため、そのように呼ばれることもあります。

MySQLをインストール

Amazon Linuxを利用している場合、MySQLは yum コマンドからインストールすることができます。

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56

これは、MySQLのバージョン5.6をインストールすることを意味します。

MySQLを起動

MySQLを起動するために service コマンドを利用します。これは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start

mysql ではなく mysqld であることに注意しましょう。「d」はLinuxの用語で「サーバ」を意味する「デーモン(daemon)」の頭文字です。

起動できたか確認する

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld status
mysqld (pid  15692) is running...

「running」と表示されれば、MySQLの起動は成功

MySQLのrootパスワードの設定

yum でインストールしたMySQLには、デフォルトで root というユーザーでアクセス出来るようになっていますが、パスワードは設定されていません。

そこで、以下のコマンドでパスワードを設定しましょう。'設定したいパスワード'の部分については、例えばpassword0000という文字列を設定するとしたら、 'password0000'と記載しましょう。
0から始まるpasswordは読み込んでくれないケースが多いので、避けましょう!
(例えば、’0331higuchi’など)

[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'ここを設定したいパスワードに変更してからコマンドを実行してください'

このパスワードは、後ほどRailsからアクセスする時にも利用するので記憶しておいてください。

この時、Warning: Using a password on the command line interface can be insecure.と警告がでることがありますが、ここでは無視していただいて問題ありません。

MySQLへの接続確認

設定したパスワードが使えるか確認

[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p

Enter password: とパスワードを入力するように表示されるので、先程設定したパスワードを入力して、Enterしてください。以下のように表示されれば、MySQLの設定は終了です。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

次の作業のために、Ctrl + c でMySQLから抜けておきましょう。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

デプロイ方法(EC2環境構築/Linux/MySQL設定)

※デプロイの方法の手順② 今後の自分のメモ用に

EC2インスタンスの環境構築

設定用のツールをインストール

最初にyumというコマンドを使ってこのサーバに元々あるプログラムをアップデートします。こうしたプログラムをパッケージと呼びます。

yumコマンド

Linuxにおけるソフトウェア管理の仕組みです。MacOSにとってのhomebrewと同じ役割を果たします。yumコマンドを利用することで、yumの管理下にあるプログラムのバージョンを管理したり、一括でアップデートしたりできます。

パッケージ

LinuxOS下における、ある役割/機能をもったプログラムの集合です。ソフトウェアとも、ライブラリとも呼べます。
あくまでもLinuxOSでは、ある役割/機能をもったプログラムの集合のことをパッケージと呼ぶよ、ということです

パッケージをアップデート

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y update

その他環境構築に必要なパッケージを諸々インストール

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl

-yコマンドについて

-y はyumコマンドのオプションです。yum install などのコマンドでは、本当にインストールして良いのか [y/n]のようにYes or Noが問われます。この場合はYキーを押してEnterキーを押せば正常どおりインストールが行われます。しかし、初見であったり誤ってYキー以外を押してしまう場合もあります。 ここでは確実にインストールするために、予めオプションで-yを設定する事で全ての問いにYesで自動的に答えるように設定してコマンドを実行しましょう。

もし誤ってオプションを忘れてしまうと下記のような問いが発生しますので、Yキーを押し次にEnterキーを押してインストールを完了して下さい。

総ダウンロード容量: 120 M
Is this ok [y/d/N]: 

Node.jsをインストール

EC2上でJavaScriptを動かすためにNode.jsというものをインストールします。

Node.js

サーバーサイドで動くJavaScriptのパッケージです。今後のデプロイに向けた作業の中で、CSSや画像を圧縮する際に活用されます。

[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash -
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs

こちらも確認画面が出てきた場合は、「y」→returnキーで確定してください。

これでNode.jsのインストールは完了です。

rbenvとruby-buildをインストール

rbenvとruby-buildをインストールします。Macの環境構築の際にも利用しましたが、改めて簡単に説明しておきます。
rbenvとruby-buildは、Rubyのバージョンを管理する際に組み合わせて使うツールになります。これらはRubyをインストールする前に、インストールする必要があります。
ruby-buildはrbenvのプラグインであり、ruby-buildによってRubyの様々なバージョン(2.0.0など)をインストールすることができます。
rbenvを使用することでrubyのバージョンを切り替えることできます。

#rbenvのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 
#パスを通す
[ec2-user@ip-172-31-25-189 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 
#rbenvを呼び出すための記述
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
#.bash_profileの読み込み
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile
#ruby-buildのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
#rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  

1つ目のコマンドは、gitからrbenvをクローンしています。
2つ目と3つ目のコマンドは、パスを通す際に必要なコマンドです。パスを通すとは、どのディレクトリからもアプリケーションを呼び出せる状態にするということです。
そして、4つ目のコマンドで、設定したパスを読み込んでいます。
5つ目のコマンドは、gitからruby-buildをクローンしています。
最後のコマンドは、使用しているRubyのバージョンにおいて、gemのコマンドを使えるようにするために必要なコマンドです。

これでrbenvとruby-buildのインストールは完了

Rubyをインストール

インストールするRubyのバージョン、自身のアプリケーションで使っているRubyのバージョンによって適宜変更してください。

[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.5.1
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.5.1
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  #rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ ruby -v # バージョンを確認

1つ目のコマンドで、Rubyの2.5.1のバージョンをインストールしています。Rubyのインストールには時間がかかります。ターミナルに「Installing ruby-2.5.1...」といった表示が出たまま止まって見えますが、そのまま待ちましょう。
2つ目のコマンドは、EC2インスタンス内で使用するRubyのバージョンを決めるものになります。
3行目では再びRehashを行っています。
最後にruby -vコマンドを打ち込み、バージョンを確認しましょう。

EC2インスタンス内の環境構築が完了

MySQLの設定

データベースの種類

一口にデータベースと言っても、いくつかの種類があります。以下にその種類を示します。

・階層型データベース
・ネットワーク型データベース
・リレーショナルデータベース
この中で最も利用されているのが、リレーショナルデータベースです。
エクセルの表のような形で情報を整理し、管理することができます。そして、このリレーショナルデータベースを管理するソフトウェアはリレーショナル・データ・ベース・マネジメント・システム(RDBMS)と呼ばれます。

そんなRDBMSの中でも代表的なものの一つが、MySQLです。

MySQL

MySQLは、Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用することができます。
Ruby on Railsと合わせ利用することができ、本カリキュラムでは一貫してMySQLを利用しています。

Oracle社のMySQL紹介ページ
MySQL公式ページ

1.png

一つのEC2インスタンスに、Railsをはじめ必要なソフトをすべてインストールしています。MySQLもそのうちの一つです。上の図で「データベースサーバー」と書かれているものが、MySQLに当たります。MySQLのようなソフトはデータベースの管理を行うため、そのように呼ばれることもあります。

MySQLをインストール

Amazon Linuxを利用している場合、MySQLは yum コマンドからインストールすることができます。

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56

これは、MySQLのバージョン5.6をインストールすることを意味します。

MySQLを起動

MySQLを起動するために service コマンドを利用します。これは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start

mysql ではなく mysqld であることに注意しましょう。「d」はLinuxの用語で「サーバ」を意味する「デーモン(daemon)」の頭文字です。

起動できたか確認する

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld status
mysqld (pid  15692) is running...

「running」と表示されれば、MySQLの起動は成功

MySQLのrootパスワードの設定

yum でインストールしたMySQLには、デフォルトで root というユーザーでアクセス出来るようになっていますが、パスワードは設定されていません。

そこで、以下のコマンドでパスワードを設定しましょう。'設定したいパスワード'の部分については、例えばpassword0000という文字列を設定するとしたら、 'password0000'と記載しましょう。
0から始まるpasswordは読み込んでくれないケースが多いので、避けましょう!
(例えば、’0331higuchi’など)

[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'ここを設定したいパスワードに変更してからコマンドを実行してください'

このパスワードは、後ほどRailsからアクセスする時にも利用するので記憶しておいてください。

この時、Warning: Using a password on the command line interface can be insecure.と警告がでることがありますが、ここでは無視していただいて問題ありません。

MySQLへの接続確認

設定したパスワードが使えるか確認

[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p

Enter password: とパスワードを入力するように表示されるので、先程設定したパスワードを入力して、Enterしてください。以下のように表示されれば、MySQLの設定は終了です。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

次の作業のために、Ctrl + c でMySQLから抜けておきましょう。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む