2016/11/07 時点、多くの環境では yum レポジトリ等に mysql 5.7 が含まれていません。公式ページからダウンロードしてインストールする手順を二つまとめます。
Installing MySQL on Linux Using the MySQL Yum Repository (mysql 5.7) をもとにしています。rpm コマンドや yum レポジトリの追加についてはこちらをご参照ください。
Download MySQL Yum Repository から 5.7 (GA) の yum repository rpm をダウンロードします。例えば CentOS 6 であれば Red Hat Enterprise Linux 6 / Oracle Linux 6 (Architecture Independent), RPM Package
を選択します。以下のコマンドで yum レポジトリを追加します。
sudo rpm -ivh mysql57-community-release-el6-9.noarch.rpm
レポジトリが追加されたこと、および mysql57-community
が enabled=1
となっていることを確認します。
less /etc/yum.repos.d/mysql-community.repo
yum コマンドで mysql をインストールします。
yum info mysql-community-server
sudo yum install mysql-community-server
既存の他のバージョンの mysql と競合する場合は以下のコマンドで個別に remove してからインストールします。
rpm -qa | grep mysql
sudo yum remove xxx
インストールに成功した後は、設置されたファイルを確認してみましょう。
rpm -ql mysql-community-server | less
sudo service mysqld start
sudo service mysqld status
mysql 5.7 では root に初期パスワードが設定されています。ログファイルに記載されているため grep で確認して変更します。
sudo grep 'temporary password' /var/log/mysqld.log
記載されていない場合はログ全体を確認します。
sudo less /var/log/mysqld.log
過去にインストールしていた mysql のデータが残存している場合があります。
grep 'datadir' /etc/my.cnf
sudo ls /var/lib/mysql
そのような場合は datadir を削除してから再度 start します。データが削除されるため実行時は注意してください。
sudo service mysqld stop
sudo su -l
rm -rf /var/lib/mysql/*
exit
sudo service mysqld start
sudo service mysqld status
確認した初期パスワードでログインします。
mysql -uroot -p
以下のコマンドでパスワードを変更します。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
パスワードなしでログインできるようにするためには /etc/my.cnf
を編集して再起動します。
sudo vim /etc/my.cnf
skip-grant-tables ← [mysqld] セクションに追記
sudo service mysqld restart
セキュリティ上の観点から好ましくない状況もありそうですが、初期パスワード変更後の root ユーザーでプラグインをアンインストールすることでもパスワードなしログインを実現できます。
UNINSTALL PLUGIN validate_password;
SET PASSWORD = '';
mysql 5.7 には、一定期間が経過するとパスワードを失効させてログインできなくする機能があります。不要な場合は、以下のコマンド結果が 0 であることを確認して無効になっていることを確認します。
select @@default_password_lifetime;
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
sudo apt update
sudo apt install mysql-community-server
sudo apt install mysql-community-client
sudo apt install libmysqlclient-dev
Installing MySQL on Unix/Linux Using Generic Binaries (mysql 5.7) をもとにしています。
Download MySQL Community Server から Linux - Generic
の Compressed TAR Archive
をダウンロードして /usr/local/
に解凍します。以下は 64bit 版の例です。
sudo mv mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /usr/local/
sudo su -l
cd /usr/local/
tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo su -l
cd /usr/local/
ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 ./mysql
cd mysql/
mkdir mysql-files
chmod 750 mysql-files
chown -R mysql .
chgrp -R mysql .
例えば datadir を /data/mysql
にしたい場合は以下のコマンドを実行します。root ユーザーの初期パスワードが表示されますのでメモしておきましょう。
sudo mkdir -p /data/mysql
sudo /usr/local/mysql/bin/mysqld --no-defaults --initialize --user=mysql --datadir=/data/mysql
sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --no-defaults --datadir=/data/mysql
sudo chown -R mysql: /data/mysql
sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
sudo vim /etc/my.cnf
設定を編集します。
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/tmp/mysql.sock
pid 用のディレクトリを作成します。
sudo mkdir /var/run/mysqld
sudo chown mysql: /var/run/mysqld
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
確認した初期パスワードでログインします。
/usr/local/mysql/bin/mysql -uroot -p
以下のコマンドでパスワードを変更します。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
パスワードなしでログインできるようにするためには /etc/my.cnf
を編集して再起動します。
sudo vim /etc/my.cnf
skip-grant-tables ← [mysqld] セクションに追記
セキュリティ上の観点から好ましくない状況もありそうですが、初期パスワード変更後の root ユーザーでプラグインをアンインストールすることでもパスワードなしログインを実現できます。
UNINSTALL PLUGIN validate_password;
SET PASSWORD = '';
mysql 5.7 には、一定期間が経過するとパスワードを失効させてログインできなくする機能があります。不要な場合は、以下のコマンド結果が 0 であることを確認して無効になっていることを確認します。
select @@default_password_lifetime;
/usr/local/mysql/bin/mysql/
以下のファイルに PATH を通したり logrotate するため設定などを適宜必要に応じて行います。