58
2017/07/15 日本MySQLユーザ会 坂井 恵 オープンソースカンファレンス2017-Hokkaido 【入門】

OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~

  • Upload
    sakaik

  • View
    634

  • Download
    1

Embed Size (px)

Citation preview

2017/07/15

日本MySQLユーザ会

坂井恵

オープンソースカンファレンス2017-Hokkaido

【入門】

このセッションは

• MySQLを学んでいく上での「インストール」の重要性を説く、入門向けセッションです

• MySQLの最新情報(バージョン5.7 や 8.0)な

どの話を聞きたい方は、ぜひブースのほうにもお越しください。

Who am I?

• 坂井 恵 (さかいけい)

–@sakaik

–日本MySQLユーザ会副代表

–最近は「趣味のMySQLユーザー」

–千葉県から来ました

今日のテーマ

『インストールを極める者が

その技術をモノにする』

おしながき

1.MySQLについて2.MySQLを学ぶということ3.MySQLのインストール方法4.MySQL手動でのインストール

1.MySQL

MySQLについて

基本情報の

整理

MySQL

• データベース管理システム

(データベースソフト)

• オープンソース

ライセンスは、GPLと商用ライセンスから選択可能

• Since 1995. 本格的な普及は 2001年の ver. 3.23

「世界でもっとも普及しているオープンソースデータベース」(主催者発表)

最近のMySQL バージョンの変遷

5.7

5.65.1

5.0

6.0

5.55.4(2005) (2010)

(2013)

(2015)

(2008)

8.0(2018?)

どのバージョンを選ぶか

①既存の案件で、バージョンが指定されている場合は、そのバージョン

②比較的すぐに新規の案件で使うなら、5.7

③将来を見越して最先端の情報を追うなら 8.0

このバージョンを選ぶ!

5.7

5.65.1

5.0

6.0

5.55.4(2005) (2010)

(2013)

(2015)

(2008)

8.0(2018?)

2.MySQLを学ぶということ

技術スキルを

習得するときに

もっとも大切なものは

何だろうか

MySQLを学ぶとは

1.試す

2.試す

3.

4.

5. 試す

その他

• 調べる

• 考える

MySQL技術の習得のために必要なこと

MySQLを学ぶとは

とにかくドンドン「試す」ことがもっとも大切な要素

(MySQLに限らず、多くの技術習得に言えること)

そんなこと、分かってるって!

MySQLを学ぶとは

• 「試す」ことが大切なのは、分かっている

•では、なぜ試さない?– なんとなく億劫

– 試す環境を作るのがたいへん

「試す環境を作るのがたいへん」

それなら、まず、

たいへんでなくなる

力を手に入れよう

極意:

つまりインストールを極める!

今日のキーワードです

× 「知り尽くす」

○ 「あなた自身が、もっともラクできるインストール方法を見つける」

おすすめ学習ステップ

1. とにかく一番ラクな方法でインストール2. そこそこ満足するまで気ままにいじり倒す

3. アンインストールする

4. 何種類かのインストール方法を試して、自分なりのインストール/アンインストールテクニックを手に入れる

5. 気ままにいじり倒す

6. 気ままにいじり倒す(以下続く)

今日のキーワード

『インストールに自信を持つことが

MySQLなどの技術を習得するための

大きな2歩目だ。』

-- sakaik, 2017

3.MySQLインストール方法

いろいろな

インストール方法を

知る

MySQLのインストール方法あれこれ

①Windows の “MySQL Installer”

Windowsのインストーラー (msi)

②MacOSのパッケージ(dmg)

③Linux 系のリポジトリ(yum, apt など)

④Linux 系のパッケージ(rpm, debなど)

⑤バイナリを配置(手動インストール)

⑥ソースコードからビルド

MySQLのダウンロード

何をダウンロードしたいか、知っておく

ポイントは3つ

1.OSは?

2.インストール方法は?

3.32bit /64bit?

MySQLダウンロードページ

GAバージョンと開発バージョン

ダウンロード:OSの選択

おすすめ学習ステップ

1. とにかく一番ラクな方法でインストール

2. そこそこ満足するまで気ままにいじり倒す

3. アンインストールする

4. 何種類かのインストール方法を試して、自分なりのインストール/アンインストールテクニックを手に入れる

5. 気ままにいじり倒す

6. 気ままにいじり倒す(以下続く)

【再掲】

最初のインストール

• もっとも楽な方法でさくっと入れよう

Windows:MySQL Installer

Mac OS X: dmg

Linux系: リポジトリから

簡単インストール:Linuxリポジトリ

(MySQLダウンロードページ)

おすすめ学習ステップ

1. とにかく一番ラクな方法でインストール

2. そこそこ満足するまで気ままにいじり倒す

3. アンインストールする

4. 何種類かのインストール方法を試して、自分なりのインストール/アンインストールテクニックを手に入れる

5. 気ままにいじり倒す

6. 気ままにいじり倒す(以下続く)

【再掲】

極めるインストール

ぜひ手動インストールを!

MySQL動作への理解が深まる

活用の幅が広がる一台の上に複数のMySQLとか

※きちんと理解すれば、難しくはありません!

(バイナリ・アーカイブを落としてきてインストール)

4.MySQL手動インストール

バイナリ・アーカイブを

落としてきて

MySQLが動作する

環境を作る

バイナリ配置での動作

MySQL動作のしくみ

• 接続や指示を待ち受けているプログラムがある(サーバー)

• そこにクライアントが接続しに行く

mysqld(プログラム)

TCP Port 3306

Socket fileクライアント

これだけ!

mysqlクライアント

mysqlクライアント(拡大)

MySQL動作のしくみ

• 接続や指示を待ち受けているプログラムがある(サーバー)

• そこにクライアントが接続しに行く

mysqld(プログラム)

TCP Port 3306

Socket file

(mysqlコマンドラインクライアントからの接続)

MySQL動作のしくみ

• 接続や指示を待ち受けているプログラムがある(サーバー)

• そこにクライアントが接続しに行く

mysqld(プログラム)

TCP Port 3306

Socket file

開発プログラム

クライアントライブラリ

(接続ライブラリ)

(各種開発プログラムからの接続)

MySQLのインストール:バイナリを配置

■考え方

• バイナリの入ったアーカイブを落としてきて

• mysqldを起動する

• mysqlクライアントコマンドで接続する

MySQLのインストール:バイナリを配置

■考え方

• バイナリの入ったアーカイブを落としてきて

• mysqldを起動する

• mysqlクライアントコマンドで接続する

事前準備:MySQLが動作する環境を整えて

ファイルを展開して

必要なパラメタを指定して起動

必要なパラメタを指定して接続

毎回の起動のたびに「必要なパラメタ」を全部指定するのは面倒なので、my.cnfという設定ファイルに記述しておくとラク。

最初にデータファイルの初期化

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• 使用できるLinux環境(ここではAWS上のRed Hat

を例に)を用意する。

• 競合するソフトウェア(MariaDB)が入っているので除去する

• 必要なライブラリをインストールする

①動作環境の用意

$ sudo yum remove mariadb-libs

$ sudo yum install wget libaio-devel

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• MySQLのダウンロードページから、適切なファイルをダウンロードし、展開する見るポイント

OS

32bit か 64bit か

ファイルのタイプ(拡張子など): パッケージシステムのファイルでないもの

②バイナリの入ったアーカイブを落としてきて

$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

$ tar xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz$ mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql5718

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• MySQLのダウンロードページから、適切なファイルをダウンロードし、展開する見るポイント

OS

32bit か 64bit か

ファイルのタイプ(拡張子など): パッケージシステムのファイルでないもの

②バイナリの入ったアーカイブを落としてきて

$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

$ tar xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz$ mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql5718

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

mysqld(サーバ)起動時に、動作内容を指示するためのパラメタを指定する

接続待ちするポート

接続に使用するソケットファイル(Linuxのローカル接続ではこれを使う)

標準で使用する文字コード

各種ファイル配置のパス

③mysqldを起動・・・・の前に、パラメタについて

$ bin/mysqld --port=3306 --socket=/tmp/mysql5718.sock --character-set-server=utf8mb4 --datadir=/home/my/mysql/mysql5718/data …

毎回の起動のたびに「必要なパラメタ」を全部指定するのは面倒なので、my.cnf という設定ファイルに記述しておくとラク。

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

my.cnf記述例

③mysqldを起動:のためにmy.cnfを記述

[mysqld] log-error=/home/ec2-user/mysql/mysql5718/my.errbasedir = /home/ec2-user/mysql/mysql5718datadir = /home/ec2-user/mysql/mysql5718/dataport=15718socket=/tmp/mysql5718.sockcharacter-set-server=utf8mb4[mysqladmin]socket=/tmp/mysql5718.sock[mysql] port=15718socket=/tmp/mysql5718.sockdefault-character-set=utf8mb4

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• mysqldを “--initialize” オプションをつけて実行すると、データファイル群が作成される

• ついでに sslの初期化もしておくとよい

③-2 データファイルの初期化

$ bin/mysqld --defaults-file=./my.cnf --initialize

$ bin/mysql_ssl_rsa_setup --defaults-file=./my.cnf

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• mysqld_safeを使ってmysqldサーバを起動

(作成したmy.cnfが、カレントフォルダに存在する前提)

③-3 mysqldサーバ起動

$ bin/mysqld_safe &

※ mysqld_safeは、色々と良きに計らってmysqldを起動してくれるスクリプト

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

作成したmy.cnfファイルを指定して、mysqlクライアントコマンドを実行

④mysqlクライアントから接続と最初の設定

$ ./bin/mysql --defaults-file=./my.cnf -uroot -p

initializeの時に、初期パスワードが my.errに書き込まれるのであらかじめ確認しておく

2017-05-24T05:07:08.020775Z 4 [Note] A temporary password is generated for root@localhost: rtrqCApwZ8?k

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例

• インストール直後に作成されているユーザの「初期パスワード」を変更する必要がある

• 変更するまで、なんの操作もできない

• 変更には ALTER USER 文を使用する

④-2 パスワード設定

mysql> ALTER USER root@localhost IDENTIFIED BY 'mypass';

#!/usr/bin/bash

MVER=1

sudo yum -y install wget libaio-develsudo yum -y remove mariadb-libs

cd ~wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-8.0/mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gzmkdir -p mysql/cd mysql

tar xvf ../mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gzmv mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64 mysql80${MVER}cd mysql80${MVER}

#echo ------------------------------------#echo Please push ENTER key to continue.#read

cat <<EOF > my.cnf[mysqld]log-error=/home/ec2-user/mysql/mysql80${MVER}/my.errbasedir = /home/ec2-user/mysql/mysql80${MVER}datadir = /home/ec2-user/mysql/mysql80${MVER}/dataport=180${MVER}

socket=/tmp/mysql80${MVER}.sockcharacter-set-server=utf8mb4

[mysqladmin]socket=/tmp/mysql80${MVER}.sock

[mysql]port=180${MVER}socket=/tmp/mysql80${MVER}.sockdefault-character-set=utf8mb4EOF

bin/mysqld --defaults-file=./my.cnf --initializebin/mysql_ssl_rsa_setup --defaults-file=./my.cnf

bin/mysqld_safe &

sleep 3

grep 'temporary password' my.errecho To connect: ./bin/mysql --defaults-file=./my.cnf -uroot -pecho Change password: ALTER USER root@localhost IDENTIFIED BY \'mypass\';

MySQLのバイナリでのインストール

Linux(AWSのRed Hat)の例おまけ:MySQL 8.0.1 オレオレセットアップスクリプトの例

MySQLのインストール:バイナリを配置

■考え方

• バイナリの入ったアーカイブを落としてきて

• mysqldを起動する

• mysqlクライアントコマンドで接続する

事前準備:MySQLが動作する環境を整えて

ファイルを展開して

必要なパラメタを指定して起動

必要なパラメタを指定して接続

毎回の起動のたびに「必要なパラメタ」を全部指定するのは面倒なので、my.cnfという設定ファイルに記述しておくとラク。

最初にデータファイルの初期化

【再掲】

今日のキーワード

『インストールに自信を持つことが

MySQLなどの技術を習得するための

大きな2歩目だ。』

-- sakaik, 2017

極意(再掲)

つまりインストールを極める!

今日のキーワードです

× 「知り尽くす」

○ 「あなた自身が、もっともラクできるインストール方法を見つける」

インストールと

アンインストールを

自在に操って、

どんどんMySQLを

試しちゃいましょう!

- Fin -

展示ブースのご案内

オラクル・MySQLチーム さんと日本MySQLユーザ会のブースがそれぞれあります(斜め向かい)

オラクル・MySQLチームさんのニュー・ノベルティ