>100 Views
February 11, 18
スライド概要
2017/07/15に札幌で開催された、オープンソースカンファレンス(OSC)2017-Hokkaidoでの、日本MySQLユーザ会発表枠での発表資料です。インストールを極めて、MySQLをいじり倒す環境をいつでも気軽に作れるようになりましょう、というのが趣旨です。
オープンソースカンファレンス2017-Hokkaido 【入門】 2017/07/15 日本MySQLユーザ会 坂井 恵
このセッションは • 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.0 5.5 5.4 (2005) 5.1 6.0 (2008) (2010) 5.6 (2013) 8.0 (2018?) 5.7 (2015)
どのバージョンを選ぶか ①既存の案件で、バージョンが指定されている 場合は、そのバージョン ②比較的すぐに新規の案件で使うなら、5.7 ③将来を見越して最先端の情報を追うなら 8.0
このバージョンを選ぶ! 5.0 5.5 5.4 (2005) 5.1 6.0 (2008) (2010) 5.6 (2013) 8.0 (2018?) 5.7 (2015)
2.MySQLを学ぶということ 技術スキルを 習得するときに もっとも大切なものは 何だろうか
MySQLを学ぶとは MySQL技術の習得のために必要なこと 1.試す 2.試す 3. 4. 5. 試す その他 • 調べる • 考える
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動作のしくみ • 接続や指示を待ち受けているプログラムがあ る(サーバー) これだけ! • そこにクライアントが接続しに行く TCP Port 3306 クライアント Socket file mysqld (プログラム)
mysqlクライアント
mysqlクライアント(拡大)
MySQL動作のしくみ (mysqlコマンドラインクライアントからの接続) • 接続や指示を待ち受けているプログラムがあ る(サーバー) • そこにクライアントが接続しに行く TCP Port 3306 Socket file mysqld (プログラム)
MySQL動作のしくみ (各種開発プログラムからの接続) • 接続や指示を待ち受けているプログラムがあ る(サーバー) • そこにクライアントが接続しに行く 開発プログラム クライアント ライブラリ (接続ライブラリ) TCP Port 3306 Socket file mysqld (プログラム)
MySQLのインストール:バイナリを配置 ■考え方 • バイナリの入ったアーカイブを落としてきて • mysqld を 起動する • mysql クライアントコマンドで接続する
MySQLのインストール:バイナリを配置 ■考え方 事前準備: MySQLが動作する環境を整えて • バイナリの入ったアーカイブを落としてきて ファイルを展開して • mysqld を 起動する 最初にデータファイルの初期化 必要なパラメタを指定して起動 • 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/MySQL5.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/MySQL5.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を起動・・・・の前に、パラメタについて mysqld(サーバ)起動時に、動作内容を指示す るためのパラメタを指定する 接続待ちするポート 接続に使用するソケットファイル(Linuxのローカル接続 ではこれを使う) 標準で使用する文字コード 各種ファイル配置のパス $ bin/mysqld --port=3306 --socket=/tmp/mysql5718.sock --characterset-server=utf8mb4 --datadir=/home/my/mysql/mysql5718/data …
毎回の起動のたびに「必 要なパラメタ」を全部指定 するのは面倒なので、 my.cnf という設定ファイル に記述しておくとラク。
MySQLのバイナリでのインストール Linux(AWSのRed Hat)の例 ③mysqldを起動:のために my.cnfを記述 my.cnf記述例 [mysqld] log-error=/home/ec2-user/mysql/mysql5718/my.err basedir = /home/ec2-user/mysql/mysql5718 datadir = /home/ec2-user/mysql/mysql5718/data port=15718 socket=/tmp/mysql5718.sock character-set-server=utf8mb4 [mysqladmin] socket=/tmp/mysql5718.sock [mysql] port=15718 socket=/tmp/mysql5718.sock default-character-set=utf8mb4
MySQLのバイナリでのインストール Linux(AWSのRed Hat)の例 ③-2 データファイルの初期化 • mysqldを “--initialize” オプションをつけて実行 すると、データファイル群が作成される • ついでに ssl の初期化もしておくとよい $ bin/mysqld --defaults-file=./my.cnf --initialize $ bin/mysql_ssl_rsa_setup --defaults-file=./my.cnf
MySQLのバイナリでのインストール Linux(AWSのRed Hat)の例 ③-3 mysqldサーバ起動 • mysqld_safe を使って mysqldサーバを起動 (作成したmy.cnf が、カレントフォルダに存在する前提) $ bin/mysqld_safe & ※ mysqld_safe は、色々と良きに計らって mysqld を起動してくれるスクリプト
MySQLのバイナリでのインストール Linux(AWSのRed Hat)の例 ④ mysqlクライアントから接続と最初の設定 作成した my.cnf ファイルを指定して、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)の例 ④-2 パスワード設定 • インストール直後に作成されているユーザの「初期パスワー ド」を変更する必要がある • 変更するまで、なんの操作もできない • 変更には ALTER USER 文を使用する mysql> ALTER USER root@localhost IDENTIFIED BY 'mypass';
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
おまけ: MySQL 8.0.1 オレオレセットアップスクリプトの例
#!/usr/bin/bash
socket=/tmp/mysql80${MVER}.sock
character-set-server=utf8mb4
MVER=1
sudo yum -y install wget libaio-devel
sudo yum -y remove mariadb-libs
cd ~
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-8.0/mysql8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gz
mkdir -p mysql/
cd mysql
tar xvf ../mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gz
mv mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64 mysql80${MVER}
cd mysql80${MVER}
[mysqladmin]
socket=/tmp/mysql80${MVER}.sock
[mysql]
port=180${MVER}
socket=/tmp/mysql80${MVER}.sock
default-character-set=utf8mb4
EOF
bin/mysqld --defaults-file=./my.cnf --initialize
bin/mysql_ssl_rsa_setup --defaults-file=./my.cnf
bin/mysqld_safe &
#echo -----------------------------------#echo Please push ENTER key to continue.
#read
cat <<EOF > my.cnf
[mysqld]
log-error=/home/ec2-user/mysql/mysql80${MVER}/my.err
basedir = /home/ec2-user/mysql/mysql80${MVER}
datadir = /home/ec2-user/mysql/mysql80${MVER}/data
port=180${MVER}
sleep 3
grep 'temporary password' my.err
echo To connect: ./bin/mysql --defaults-file=./my.cnf -uroot -p
echo Change password: ALTER USER root@localhost IDENTIFIED BY
\'mypass\';
MySQLのインストール:バイナリを配置 【再掲】 ■考え方 事前準備: MySQLが動作する環境を整えて • バイナリの入ったアーカイブを落としてきて ファイルを展開して • mysqld を 起動する 最初にデータファイルの初期化 必要なパラメタを指定して起動 • mysql クライアントコマンドで接続する 必要なパラメタを指定して接続 毎回の起動のたびに「必要なパラメタ」を全部指定するのは面倒なので、 my.cnf という設定ファイルに記述しておくとラク。
今日のキーワード 『インストールに自信を持つことが MySQLなどの 技術を習得するための 大きな2歩目だ。 』 -- sakaik, 2017
極意(再掲) つまりインストールを極める! × 「知り尽くす」 ○ 「あなた自身が、もっともラクできる インストール方法を見つける」 今日のキーワードです
インストールと アンインストールを 自在に操って、 どんどんMySQLを 試しちゃいましょう! - Fin -
展示ブースのご案内 オラクル・MySQLチーム さんと 日本MySQLユーザ会のブースが それぞれあります(斜め向かい)
オラクル・MySQLチームさんの ニュー・ノベルティ