コピペコードで快適生活

明日使えるソースを自分のために

CentOS6系にMySQL5.7を一撃インストール

CentOS6系にMySQL5.7をインストールした時のメモ書き。

インストール時に発行される初期パスワードをシェルで取り出してログイン。
その後パスワードを仮のものに変更(これを一度やらないと色々操作できない)。
パスワード制約をゆるくして、再度わかりやすいワードで設定し直しました。

function install {
  echo installing $1
  shift
  yum -y install "$@" >/dev/null 2>&1
}
yum install -y https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm >/dev/null 2>&1
install "MySQL" mysql mysql-server mysql-devel
chkconfig --add mysqld
chkconfig --level 345 mysqld  on

echo "Start and Initialize MySQL"
service mysqld start >/dev/null 2>&1

mpw=$(cat /var/log/mysqld.log | grep "A temporary password is generated for root@localhost" | awk '{print $NF}')
mysql -uroot -p$mpw --connect-expired-password <<SQL
-- CONFIG PASSWORD POLICY --
SET PASSWORD FOR root@localhost=password('passwordPASSWORD@999');
SET GLOBAL validate_password_length=4;
SET GLOBAL validate_password_policy=LOW;
-- SET ROOT PASSWORD --
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
-- REMOVE ANONYMOUS USERS --
DELETE FROM mysql.user WHERE User='';
-- REMOVE REMOTE ROOT --
DELETE FROM mysql.user
WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
-- REMOVE TEST DATABASE --
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
-- RELOAD PRIVILEGE TABLES --
FLUSH PRIVILEGES;
CREATE USER 'vagrant'@'localhost' IDENTIFIED BY 'vagrant';
GRANT ALL PRIVILEGES ON *.* to 'vagrant'@'localhost';
SQL

作成したユーザは下記になります。

ID root@localhost
PW root

ID vagrant@localhost
PW vagrant

リポジトリの参照場所
https://dev.mysql.com/downloads/repo/yum/