Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
MySQL5.7から実装された「マルチソースレプリケーション」を使いたいため、同バージョンをインストールします。
なお、インストール先のサーバーはすでにMySQL5.5が稼働しているため、複数のMySQLをインストールして運用する前提となります。
関連リンク: マルチソースレプリケーションの設定
% less /etc/redhat-release CentOS release 6.5 (Final)
% arch x86_64
% cd ~/sysad % wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
% tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
今回は下記のパスに配置します。
/usr/local/mysql-5.7.29
% sudo su # mv /path/to/mysql-5.7.29/mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.29 # chown -R mysql:mysql /usr/local/mysql-5.7.29
# cd /usr/local/mysql-5.7.29 # mkdir data && chown mysql:mysql data
# touch /var/log/mysqld_5.7.29.log && chown mysql:mysql /var/log/mysqld_5.7.29.log
# /usr/local/mysql-5.7.29/bin/mysqld --initialize --basedir=/usr/local/mysql-5.7.29 --datadir=/usr/local/mysql-5.7.29/data --log-error=/var/log/mysqld_5.7.29.log
[client] #password = your_password port = 3326 socket = /tmp/mysql-5.7.29.sock [mysqld] port = 3326 socket = /tmp/mysql-5.7.29.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K # password_lifetime : nolimit default_password_lifetime = 0 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout [mysqld_safe] log-error=/var/log/mysqld_5.7.29.log
% sudo su # /usr/local/mysql-5.7.29/bin/mysqld_safe --datadir=/usr/local/mysql-5.7.29/data --pid-file=/usr/local/mysql-5.7.29/data/tz003.pid &
% ps auxwww | grep mysql | grep 5.7 root 7362 0.0 0.1 106228 1424 pts/2 S 14:17 0:00 /bin/sh /usr/local/mysql-5.7.29/bin/mysqld_safe --datadir=/usr/local/mysql-5.7.29/data --pid-file=/usr/local/mysql-5.7.29/data/tz003.pid mysql 7767 0.2 11.9 1047812 122308 pts/2 Sl 14:17 0:00 /usr/local/mysql-5.7.29/bin/mysqld --basedir=/usr/local/mysql-5.7.29 --datadir=/usr/local/mysql-5.7.29/data --plugin-dir=/usr/local/mysql 5.7.29/lib/plugin --user=mysql --log-error=/var/log/mysqld_5.7.29.log --pid-file=/usr/local/mysql-5.7.29/data/tz003.pid --socket=/tmp/mysql-5.7.29.sock --port=3326
次にmysqlに接続しますが、まずはmysqlのrootのパスワードをメモしておきます。
パスワードは以下のログファイルに記載されています。
# less /var/log/mysqld_5.7.29.log : 2020-03-30T05:01:49.577109Z 1 [Note] A temporary password is generated for root@localhost: <password> :
さっそく先程メモしたパスワードでログインを試みますが、以下のエラー(パスワードの有効期限切れ)で接続できないときは、
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
オプション「–connect-expired-password」にて、有効期限切れのパスワードでも接続可能な指定を行い、接続します。
※ このとき、Linuxのユーザーは root である必要があります。
# /usr/local/mysql-5.7.29/bin/mysql -p --connect-expired-password --socket=/tmp/mysql-5.7.29.sock Enter password: ← ここで先程メモしたパスワードを入力します。 <code> 無事、ログインできたら、mysqlのrootのパスワードを変更しておきましょう。\\ <code> mysql> set password for root@localhost=password('<PASSWORD>');
重要 |
---|
MySQL5.7 からユーザーのパスワードの有効期限がデフォルトで360日になったようです。
有効期限を無制限にするには、my.cnf の [mysqld] セクションにて、以下の設定「default_password_lifetime = 0」を記述しておきます。
設定後は mysql の再起動を忘れずに。
[mysqld] : default_password_lifetime = 0
% mysql -uroot -p --socket=/tmp/mysql-5.7.29.sock
必要であれば、以下の「mysql.server」をコピーして、/etc/init.d/ 配下に起動スクリプトを設置します。
/usr/local/mysql-5.7.29/support-files/mysql.server
# cp /usr/local/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysqld-5.7.29
vi /etc/init.d/mysqld-5.7.29
# diff /usr/local/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysqld-5.7.29 58c58 < lock_file_path="$lockdir/mysql" --- > lock_file_path="$lockdir/mysql-5.7.29" 66,67c66,67 < basedir=/usr/local/mysql < bindir=/usr/local/mysql/bin --- > basedir=/usr/local/mysql-5.7.29 > bindir=/usr/local/mysql-5.7.29/bin 70c70 < datadir=/usr/local/mysql/data --- > datadir=/usr/local/mysql-5.7.29/data 72,73c72,73 < sbindir=/usr/local/mysql/bin < libexecdir=/usr/local/mysql/bin --- > sbindir=/usr/local/mysql-5.7.29/bin > libexecdir=/usr/local/mysql-5.7.29/bin
# /etc/init.d/mysqld-5.7.29 stop Shutting down MySQL.... SUCCESS!
# /etc/init.d/mysqld-5.7.29 start Starting MySQL. SUCCESS!
# chkconfig mysqld-5.7.29 on
# chkconfig --list | grep mysql mysqld-5.7.29 0:off 1:off 2:on 3:on 4:on 5:on 6:off