>100 Views
May 27, 17
スライド概要
2017/05/27に開催された、オープンソースカンファレンス2017名古屋(OSC2017-Nagoya)でのセミナー資料「これからデータベースMySQLを始める人のために」の発表資料です。インストールを極めよう、というお話です。
オープンソースカンファレンス2017-Nyagoya 【飲食可】 【入門】 これからデータベースMySQLを 始める人のために 2017/05/27 日本MySQLユーザ会 坂井 恵
このセッションは • ランチタイムセッションです • お持ちのおひるごはん(お餅以外も含む)を 食べながら気楽にお聞きください • ただし、においの強いものは、うらやましくなり ます
このセッションは • 『これからデータベースMySQLを始める人の ために』という、入門向けセッションです • 時間に余裕があれば、MySQL最新情報や、 MySQLの小ネタなどを紹介します
MySQLを学ぶとは MySQL習得のために必要なこと • • • • • • • 試す 試す 試す 考える 試す 試す 調べる • • • • • • • 試す 試す 試す 試す 調べる 考える 試す
MySQLを学ぶとは • とにかく試す!試す!試す (MySQLに限らず、多くの技術習得に言えること) • なぜ試さない? – なんとなく億劫 – 試す環境を作るのがたいへん
「試す環境を作るのがたいへん」 なら、まず、 たいへんじゃなくなる 力を手に入れることに 力を割きましょう
極意: つまりインストールを極める! × 「知り尽くす」 ○ 「あなた自身が、もっともラクできる インストール方法を見つける」 今日のキーワードです
おすすめ学習ステップ とにかく一番ラクな方法でインストール そこそこ満足するまで気ままにいじり倒す アンインストールする 何種類かのインストール方法を試して、自分 なりのインストール/アンインストールテク ニックを手に入れる 5. 気ままにいじり倒す 6. 気ままにいじり倒す 7. 気ままにいじり倒す 1. 2. 3. 4.
MySQLのインストール方法あれこれ ① Windows の “MySQL Installer” Windows のインストーラー (msi) ②MacOSのパッケージ(dmg) ③Linux 系のリポジトリ(yum, apt など) ④Linux 系のパッケージ(rpm, debなど) ⑤バイナリを配置
ダウンロード
MySQLダウンロードページ
GAバージョンと開発バージョン
ダウンロード:OSの選択
最初のインストール • もっとも楽な方法でさくっと入れよう Windows: MySQL Installer MacOS: dmg Linux系: リポジトリから
簡単インストール:Linuxリポジトリ (MySQLダウンロードページ)
極めるインストール ぜひバイナリで! 理解が深まる 活用の幅が広がる 一台の上に複数のMySQLとか ※正しく理解すれば、難しくはありません!
バイナリでのインストール
MySQL動作のしくみ • 接続や指示を待ち受けているプログラムがあ る(サーバー) • そこに接続に行くクライアントがあるだけ。 TCP Port 3306 クライアント Socket file mysqld (プログラム)
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)を用意する。 • 競合するソフトウェア(MariDB)が入っているの で除去する • 必要なライブラリをインストールする $ 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)の例 ③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 &
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を 試しちゃいましょう! - Fin -
展示ブースのご案内