LoginSignup
1
0

More than 3 years have passed since last update.

CentOS6.7でMYSQL5.7⇒8.0にアップグレードする

Posted at

CentOS6.7でMYSQL5.7⇒8.0にアップグレードする話

はい皆さんこんにちは

この記事はCentOS6.7を頑なに使い続ける私やアナタのために書き残します。

詳細

参考にしたサイト
https://blog.offline-net.com/2018/04/22/upgrade_from_mysql_57_to_80/
https://qiita.com/imunew/items/3810a41960f40db85c94
https://ksm.bf1.jp/?p=216

環境:
CentOS6.7
MYSQL5.7
MYSQL8.0

注意事項:
CentOS6は2020-11-30 でサポート終了しています。
それでも使いたい人向けになります。

まずyumが使えない

サポートが終了しているのでYUMのURLが接続できません。
そこで代替えのURLに変更する必要があります。
※詳細は参考にしたサイトをご覧ください。

# sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\/mirrorlist.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo
# sed -i -e "s/^#baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo

これによってyumが使えるようになりました。

MYSQL5.7をアンインストール

# cat /etc/redhat-release
CentOS release 6.7 (Final)
# mysql --version
mysql  Ver 14.14 Distrib 5.7.32, for Linux (x86_64) using  EditLine wrapper
# cat /etc/my.cnf

# rpm -qa |grep community-release
mysql57-community-release-el6-7.noarch

# rpm -e mysql57-community-release

MYSQL8.0をインストール

# wget https://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm
# rpm -ivh mysql80-community-release-el6-3.noarch.rpm
# yum --showduplicates search mysql-community-server
mysql-community-server-8.0.22-1.el6.x86_64
↑が最新版になっていると仮定します。

# /etc/init.d/mysqld stop
# grep datadir /etc/my.cnf
datadir=/var/lib/mysql
 と仮定する。
# cp -aR /var/lib/mysql/ /var/lib/mysql_bk/
※容量に空きがあればバックアップを取る。
# yum update mysql-server

# vi /etc/my.cnf
1.query_cache_* のパラメーターをコメントアウト
2.[mysqld]に次のオプションを入れる default_authentication_plugin=mysql_native_password
# cat /etc/my.cnf

# cat /etc/init.d/mysqld|grep /mysqld | grep action
mysqldの場所を確認「/usr/sbin/mysqld」だったとします。

# /usr/sbin/mysqld --basedir=/usr --user=mysql --upgrade=FORCE
⇒処理中のままターミナルが帰ってきません。

別ターミナルを上げる

# tail -f /var/log/mysqld.log
このログが出たらOK
2020-12-16T03:02:18.203596Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.22'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.
---
2020-12-16T03:05:35.865223Z 0 [ERROR] [MY-010901] [Server] Can't open shared library '/var/lib/mysql/lib64/mysql/plugin/validate_password.so' (errno: 0 /var/lib/mysql/lib64/mysql/plugin/validate_password.so: cannot open shared object file: No such file or directory).
⇒こういうエラーが出る場合は以下でファイルを探す
# find / -name "validate_password.so"
/usr/lib64/mysql/plugin/validate_password.so
/usr/lib64/mysql/plugin/debug/validate_password.so
※この場合lib64より手前の--basedir=/usrが正しいオプション。
 次の手順にあるkillコマンドで停止し、再実行する。
---

アップグレード完了確認

# ps -ef |grep FORCE
# kill -9 {↑のPID}
upgradeしているターミナルが強制終了と表示される

# service mysqld restart
# mysql -u root -p
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.22    |
+-----------+
mysql> quit
---
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
このエラーが出る場合は
/etc/my.cnfに以下を入れてMYSQLDを再起動する
[client]
socket=/var/lib/mysql/mysql.sock
---

# mysql --version
mysql  Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)

感想

CentOS6系でまだまだ頑張る人の参考になれば幸いです。

ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0