この記事はMySQL Casual Advent Calendar 2017 - Qiitaの2日目のエントリとなります。
きっかけ、前提
MySQL8.0、まだRCの状態だけど、色々な機能追加の話題が盛り上がっている中でのAdvent Calendarでもあるので、MySQL 8.0新機能検証なネタを投下してくれる人も多いんじゃないかと思います。|д゚)チラッ
そこで、インストール手順自体は、何番煎じだよ、って話でもあるのですが、新機能検証記事を読んで「試してみたい!」ってときに、簡単に試せる環境ほしいよね、ってことで、このタイミングでエントリ投下することにしました。
正直なトコロ、MySQL 5.7を立ち上げる時と、ちょっとした差しかないです。
今時だとコンテナだなんだかんだあるかと思いますが、今回は頼らず、ピュアにOS立ち上げて、って手順にします。
以降、作業はVirtualBoxで、vagrantも使わずやってます。
あと、ゴリゴリやる人はソースも合わせて読むので、ソースから立ち上げるでしょうけど、カジュアルに立てたいので、yum使います。
やっぱyumらくちーん。
OS準備~mysqld起動まで
VituralBoxに(じゃなくてもいいけど)、CentOS 6.xをminimalでインストール。
執筆時点だと、最新かつ6.x系最終の6.9ですね。7.x系でもいいと思います。
AWS/EC2のAmazonLinuxも6.xと同じ操作系なので6.xを選んでいます。
CentOSのiso(CentOS-6.9-x86_64-bin-DVD1.iso)を食わせるとインストーラGUIが起動するので、その途中でネットワークは設定しておきましょう。
カジュアルに立てるには、余計な作業は省きたいです。
それ以外は、ちょっと触りたいだけならば、ほぼデフォでいいと思います。
仮想マシンへ割り当てるCPU数、メモリ、ディスク、および、OS内で設定するswap割り当てあたりはお好みで。
インストーラでの作業が終了し、OSが起動したらログインして、以降rootで作業とします。
yumで初期状態作る
yum -y update yum -y wget
これだけで十分です。他に必要なライブラリは、MySQLをyum installするときに、依存性解決で一緒に持ってきてくれますから。
iptables
ローカルホスト上での操作しかしない場合、この作業は不要です。
でも、リモートでアクセスしたい(外からmysqlコマンドライン、jdbc、MySQL Workbench等でつなぎたい)場合、TCP:3306ポートが塞がれているので、カジュアルにiptablesをOffります。
chkconfig iptables off
service iptables stop
VirtualBoxじゃなくて、AWS/EC2でやる場合、セキュリティグループのInboundでTCP:3306を許可する設定を忘れないように。
VirtualBoxで作業を続ける場合、テキスト画面にコピペができないので、ここから先はWindowsならTeraterm等、コピペできるsshクライアントで接続して作業することを推奨します。
MySQLのyumリポジトリ取得
MySQL 8.0をインストールしようとしているけど、リポジトリのrpmファイル名は「mysql57-」です。(執筆時現在)
wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
yum -y localinstall mysql57-community-release-el6-11.noarch.rpm
yumリポジトリの設定ファイルを修正
デフォのままだとMySQL5.7がインストールされるので、MySQL 8.0だけが有効になるように編集します。
vi /etc/yum.repos.d/mysql-community.repo
[mysql57-community]と[mysql80-community]のブロックで、それぞれ、「enabled」のトコロの「0」「1」を変えてあげます。
(以下は編集後の状態)
[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
初回ログイン
MySQL 5.7と同様、rootの初期パスワードがログの中にこっそり吐かれますので、拾ってあげます。
目で全部追いかけるとツライので、grepで拾ってきます。
grep'temporary password' /var/log/mysqld.log
mysql -u root -p Enter password:<B>ここで、拾ってきた初期パスワードを入力</B>
おまけ-1:my.confの場所
MySQL 8.0に限った話ではないですが、MySQLは色んな場所でパラメータ設定できるけど、yumで構築したときは、ここだけ押さえておけば良いです。
/etc/my.cnf
初期の適用状態は、「SHOW GLOBAL VARIABLES;」投げるとか、もっとカジュアルに確認するならMySQL Workbenchの「Status and System Variables」から見るとよいです。
おまけ-2:パスワードポリシー無効化
これもMySQL 5.7からの話なのですが、パスワードポリシーは以下のコマンドで無効化できます。
mysql> uninstall plugin validate_password;
これで、ゆるゆるな文字列でパスワード設定できます。
おまけ-3:MySQL 5.7までのキャッチアップ
こちらの本が、MySQL 5.7までのキャッチアップには最適かなと思います。
電子書籍版も出てます。
- 作者:梶山隆輔,山?由章
- 出版社/メーカー:インプレス
- 発売日: 2016/12/15
- メディア:Kindle版
- この商品を含むブログを見る
詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド
- 作者:奥野幹也
- 出版社/メーカー:翔泳社
- 発売日: 2016/09/01
- メディア:Kindle版
- この商品を含むブログ (4件) を見る