osc2017 nagoya これからデータベースmysqlを始める人のため

39
これからデータベースMySQL始める人のために 2017/05/27 日本MySQLユーザ会 坂井 恵 オープンソースカンファレンス2017-Nyagoya 【入門】 【飲食可】

Upload: sakaik

Post on 22-Jan-2018

984 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: OSC2017 Nagoya これからデータベースmysqlを始める人のため

これからデータベースMySQLを始める人のために

2017/05/27

日本MySQLユーザ会

坂井恵

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

【入門】【飲食可】

Page 2: OSC2017 Nagoya これからデータベースmysqlを始める人のため

このセッションは

• ランチタイムセッションです

• お持ちのおひるごはん(お餅以外も含む)を食べながら気楽にお聞きください

• ただし、においの強いものは、うらやましくなります

Page 3: OSC2017 Nagoya これからデータベースmysqlを始める人のため

このセッションは

• 『これからデータベースMySQLを始める人のために』という、入門向けセッションです

• 時間に余裕があれば、MySQL最新情報や、MySQLの小ネタなどを紹介します

Page 4: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQLを学ぶとは

• 試す

• 試す

• 試す

• 考える

• 試す

• 試す

• 調べる

• 試す

• 試す

• 試す

• 試す

• 調べる

• 考える

• 試す

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

Page 5: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQLを学ぶとは

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

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

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

Page 6: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

なら、まず、

たいへんじゃなくなる力を手に入れることに力を割きましょう

Page 7: OSC2017 Nagoya これからデータベースmysqlを始める人のため

極意:

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

今日のキーワードです

× 「知り尽くす」

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

Page 8: OSC2017 Nagoya これからデータベースmysqlを始める人のため

おすすめ学習ステップ

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

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

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

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

5. 気ままにいじり倒す

6. 気ままにいじり倒す

7. 気ままにいじり倒す

Page 9: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

①Windows の “MySQL Installer”

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

②MacOSのパッケージ(dmg)

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

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

⑤バイナリを配置

Page 10: OSC2017 Nagoya これからデータベースmysqlを始める人のため

ダウンロード

Page 11: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQLダウンロードページ

Page 12: OSC2017 Nagoya これからデータベースmysqlを始める人のため
Page 13: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 14: OSC2017 Nagoya これからデータベースmysqlを始める人のため

ダウンロード:OSの選択

Page 15: OSC2017 Nagoya これからデータベースmysqlを始める人のため
Page 16: OSC2017 Nagoya これからデータベースmysqlを始める人のため

最初のインストール

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

Windows:MySQL Installer

MacOS: dmg

Linux系: リポジトリから

Page 17: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

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

Page 18: OSC2017 Nagoya これからデータベースmysqlを始める人のため

極めるインストール

ぜひバイナリで!

理解が深まる

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

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

Page 19: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 20: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQL動作のしくみ

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

• そこに接続に行くクライアントがあるだけ。

mysqld(プログラム)

TCP Port 3306

Socket fileクライアント

Page 21: OSC2017 Nagoya これからデータベースmysqlを始める人のため

Mysqlクライアント

Page 22: OSC2017 Nagoya これからデータベースmysqlを始める人のため
Page 23: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQL動作のしくみ

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

• そこに接続に行くクライアントがあるだけ。

mysqld(プログラム)

TCP Port 3306

Socket file

Page 24: OSC2017 Nagoya これからデータベースmysqlを始める人のため

MySQL動作のしくみ

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

• そこに接続に行くクライアントがあるだけ。

mysqld(プログラム)

TCP Port 3306

Socket file

開発プログラム

クライアントライブラリ

(接続ライブラリ)

Page 25: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

■考え方

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

• mysqldを起動する

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

Page 26: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

■考え方

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

• mysqldを起動する

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

mysqlが動作する環境を整えて

ファイルを展開して

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

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

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

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

Page 27: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Linux(AWSのRed Hat)の例

• 使用できるLinux環境(ここではAWS上のRed Hat)を用意する。

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

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

①動作環境の用意

$ sudo yum remove mariadb-libs

$ sudo yum install wget libaio-devel

Page 28: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 29: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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 …

Page 30: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 31: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 32: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 33: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Linux(AWSのRed Hat)の例

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

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

③-3 mysqldサーバ起動

$ bin/mysqld_safe &

Page 34: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Page 35: OSC2017 Nagoya これからデータベースmysqlを始める人のため

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

Linux(AWSのRed Hat)の例

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

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

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

④-2 パスワード設定

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

Page 36: OSC2017 Nagoya これからデータベースmysqlを始める人のため

#!/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 オレオレセットアップスクリプトの例

Page 37: OSC2017 Nagoya これからデータベースmysqlを始める人のため

極意(再掲)

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

今日のキーワードです

× 「知り尽くす」

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

Page 38: OSC2017 Nagoya これからデータベースmysqlを始める人のため

インストールと

アンインストールを

自在に操って、

どんどんMySQLを

試しちゃいましょう!

- Fin -

Page 39: OSC2017 Nagoya これからデータベースmysqlを始める人のため

展示ブースのご案内