英語はこわい
MySQLを5.6から5.7にアップグレードするときには、下記のサイトを見ながらやってました。
▼MySQL5.1から5.7にバージョンアップさせるための手順
▼CentOSでMySQLをバージョンアップさせる方法
日本語だとすぐ理解できるし、楽だし。
しかし今回はリリースされてすぐのバージョンにアップグレードするので、
公式サイトを見ようと思うに至りました。
実際にインストールして常時起動設定まで
さっきのサイトも参考にしつつ、メインは公式サイトを見るといった形で進めます。
ミスを記録に残しつつ
ここからは打ったコマンドの半分近くがエラーを起こすものになってます。
(タイプミス含む)
つまるところ、公式サイトを見てください。
この投稿はきっとあなたをイライラさせます。
現在使っているMySQLを消す
まず以下のコマンドは全て上手くいってません。
[exia@localhost ~]$ yum remove mysql-community-release.noarch
読み込んだプラグイン:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
このコマンドを実行するには root である必要があります。
[exia@localhost ~]$ sudo yum remove mysql-community-release.noarch
[sudo] password for exia:
読み込んだプラグイン:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
引数に一致しません: mysql-community-release.noarch
削除対象とマークされたパッケージはありません。
[exia@localhost ~]$ yum list | grep "^mysql-.*server"
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
mysql-community-server.x86_64 5.7.21-1.el7 @mysql57-community
その前に、MySQLをストップします。
[exia@localhost ~]$ sudo service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
ようやく下記で削除できました。
[exia@localhost ~]$ sudo yum remove mysql*
読み込んだプラグイン:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.7.21-1.el7 を 削除
---> パッケージ mysql-community-common.x86_64 0:5.7.21-1.el7 を 削除
---> パッケージ mysql-community-devel.x86_64 0:5.7.21-1.el7 を 削除
---> パッケージ mysql-community-libs.x86_64 0:5.7.21-1.el7 を 削除
---> パッケージ mysql-community-server.x86_64 0:5.7.21-1.el7 を 削除
---> パッケージ mysql-connector-python.x86_64 0:2.1.7-1.el7 を 削除
---> パッケージ mysql-utilities.noarch 0:1.6.5-1.el7 を 削除
---> パッケージ mysql57-community-release.noarch 0:el7-7 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
削除中:
mysql-community-client x86_64 5.7.21-1.el7 @mysql57-community 106 M
mysql-community-common x86_64 5.7.21-1.el7 @mysql57-community 2.5 M
mysql-community-devel x86_64 5.7.21-1.el7 @mysql57-community 21 M
mysql-community-libs x86_64 5.7.21-1.el7 @mysql57-community 9.4 M
mysql-community-server x86_64 5.7.21-1.el7 @mysql57-community 740 M
mysql-connector-python x86_64 2.1.7-1.el7 @mysql-connectors-community 1.1 M
mysql-utilities noarch 1.6.5-1.el7 @mysql-tools-community 3.5 M
mysql57-community-release
noarch el7-7 installed 7.8 k
トランザクションの要約
================================================================================
削除 8 パッケージ
インストール容量: 884 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : mysql-utilities-1.6.5-1.el7.noarch 1/8
削除中 : mysql-community-devel-5.7.21-1.el7.x86_64 2/8
削除中 : mysql-connector-python-2.1.7-1.el7.x86_64 3/8
削除中 : mysql57-community-release-el7-7.noarch 4/8
削除中 : mysql-community-server-5.7.21-1.el7.x86_64 5/8
削除中 : mysql-community-client-5.7.21-1.el7.x86_64 6/8
削除中 : mysql-community-libs-5.7.21-1.el7.x86_64 7/8
削除中 : mysql-community-common-5.7.21-1.el7.x86_64 8/8
検証中 : mysql-community-devel-5.7.21-1.el7.x86_64 1/8
検証中 : mysql-community-client-5.7.21-1.el7.x86_64 2/8
検証中 : mysql-community-libs-5.7.21-1.el7.x86_64 3/8
検証中 : mysql-connector-python-2.1.7-1.el7.x86_64 4/8
検証中 : mysql-utilities-1.6.5-1.el7.noarch 5/8
検証中 : mysql57-community-release-el7-7.noarch 6/8
検証中 : mysql-community-server-5.7.21-1.el7.x86_64 7/8
検証中 : mysql-community-common-5.7.21-1.el7.x86_64 8/8
削除しました:
mysql-community-client.x86_64 0:5.7.21-1.el7
mysql-community-common.x86_64 0:5.7.21-1.el7
mysql-community-devel.x86_64 0:5.7.21-1.el7
mysql-community-libs.x86_64 0:5.7.21-1.el7
mysql-community-server.x86_64 0:5.7.21-1.el7
mysql-connector-python.x86_64 0:2.1.7-1.el7
mysql-utilities.noarch 0:1.6.5-1.el7
mysql57-community-release.noarch 0:el7-7
完了しました!
レポジトリを落とす
結論、レポジトリがある場所はhttp://dev.mysql.com/get/
です。
そこが分からず、以下ではミスを続けてます。
[exia@localhost ~]$ sudo yum install -ivh https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm
[sudo] password for exia:
読み込んだプラグイン:fastestmirror
Usage: yum [options] COMMAND
List of Commands:
check rpmdb の問題を確認する
check-update 更新に利用できるパッケージを確認する
clean キャッシュデータを削除する
deplist パッケージの依存性の一覧を表示する
distribution-synchronization 最新の利用可能なバージョンへインストール済みパッケージを同期する
downgrade パッケージのダウングレード
erase システムから削除するパッケージ
fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.
groups グループ情報の表示または使用
help 役立つ使い方のメッセージを表示する
history トランザクション履歴を表示、使用する
info パッケージもしくはパッケージのグループについての詳細を表示する
install システムにパッケージをインストールする
list パッケージグループの一覧を表示する
load-transaction filename から保存済みトランザクションを読み込む
makecache メタデータキャッシュを生成する
provides 指定値を提供するパッケージを検索する
reinstall パッケージの再インストール
repo-pkgs Treat a repo. as a group of packages, so we can install/remove all of them
repolist ソフトウェアリポジトリーの構成を表示する
search 指定した文字列でパッケージの詳細を検索する
shell 対話型の yum シェルを実行する
swap Simple way to swap packages, instead of using shell
update システムのパッケージを更新する
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo Acts on repository update information
upgrade 不要になったパッケージを考慮しながらパッケージを更新する
version ホストの利用できるリポジトリーのバージョンを表示する
コマンドライン エラー: no such option: -i
[exia@localhost ~]$ sudo yum install -y https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm
読み込んだプラグイン:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
ファイルが開けません: https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm を飛ばします。
エラー: 何もしません
[exia@localhost ~]$ sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
エラー: mysql80-community-release-el7-1.noarch.rpm のオープンに失敗: そのようなファイルやディレクトリはありません
[exia@localhost ~]$ sudo rpm -Uvh http://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm
http://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm を取得中
curl: (22) The requested URL returned error: 404 Not Found
エラー: http://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm をスキップします - 転送に失敗しました
[exia@localhost ~]$ sudo rpm -Uvh https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm
https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm を取得中
curl: (22) The requested URL returned error: 404 Not Found
エラー: https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-1.noarch.rpm をスキップします - 転送に失敗しました
ようやく成功しました。
[exia@localhost ~]$ sudo rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm を取得中
準備しています... ################################# [100%]
更新中 / インストール中...
1:mysql80-community-release-el7-1 ################################# [100%]
どのバージョンのMySQLを使うかを選ぶ
ここがよく分かりませんでした...。
インストールしてから設定するんじゃないの..?と思ったのですが、
レポジトリを落としてきた段階でバージョン8.0用のものが有効になっていたので良しとしました。(mysql80-community/x86_64)
[exia@localhost ~]$ yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - Sou 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - Sou 無効
mysql-connectors-community/x86_64 MySQL Connectors Community 有効: 51
mysql-connectors-community-source MySQL Connectors Community - Sour 無効
mysql-tools-community/x86_64 MySQL Tools Community 有効: 63
mysql-tools-community-source MySQL Tools Community - Source 無効
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source 無効
mysql55-community/x86_64 MySQL 5.5 Community Server 無効
mysql55-community-source MySQL 5.5 Community Server - Sour 無効
mysql56-community/x86_64 MySQL 5.6 Community Server 無効
mysql56-community-source MySQL 5.6 Community Server - Sour 無効
!mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - Sour 無効
mysql80-community/x86_64 MySQL 8.0 Community Server 有効: 17
mysql80-community-source MySQL 8.0 Community Server - Sour 無効
インストールする
公式サイトの通り。スッと行きました。
[exia@localhost ~]$ sudo yum install mysql-community-server
[sudo] password for exia:
読み込んだプラグイン:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
mysql-connectors-community | 2.5 kB 00:00:00
mysql-tools-community | 2.5 kB 00:00:00
mysql80-community | 2.5 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): mysql-connectors-community/x86_64/primary_db | 20 kB 00:00:00
(2/4): mysql80-community/x86_64/primary_db | 16 kB 00:00:00
(3/4): mysql-tools-community/x86_64/primary_db | 41 kB 00:00:00
(4/4): updates/7/x86_64/primary_db | 6.9 MB 00:00:12
Determining fastest mirrors
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-server.x86_64 0:8.0.11-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-common(x86-64) = 8.0.11-1.el7 のパッケージ: mysql-community-server-8.0.11-1.el7.x86_64
--> 依存性の処理をしています: mysql-community-client(x86-64) >= 8.0.0 のパッケージ: mysql-community-server-8.0.11-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:8.0.11-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-libs(x86-64) >= 8.0.0 のパッケージ: mysql-community-client-8.0.11-1.el7.x86_64
---> パッケージ mysql-community-common.x86_64 0:8.0.11-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-libs.x86_64 0:8.0.11-1.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
=============================================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
=============================================================================================================================================================================
インストール中:
mysql-community-server x86_64 8.0.11-1.el7 mysql80-community 341 M
依存性関連でのインストールをします:
mysql-community-client x86_64 8.0.11-1.el7 mysql80-community 26 M
mysql-community-common x86_64 8.0.11-1.el7 mysql80-community 537 k
mysql-community-libs x86_64 8.0.11-1.el7 mysql80-community 2.2 M
トランザクションの要約
=============================================================================================================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 369 M
インストール容量: 1.7 G
Is this ok [y/d/N]: y
Downloading packages:
(1/4): mysql-community-common-8.0.11-1.el7.x86_64.rpm | 537 kB 00:00:01
(2/4): mysql-community-libs-8.0.11-1.el7.x86_64.rpm | 2.2 MB 00:00:03
(3/4): mysql-community-client-8.0.11-1.el7.x86_64.rpm | 26 MB 00:00:37
(4/4): mysql-community-server-8.0.11-1.el7.x86_64.rpm | 341 MB 00:04:32
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 1.3 MB/s | 369 MB 00:04:37
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
インストール中 : mysql-community-common-8.0.11-1.el7.x86_64 1/4
インストール中 : mysql-community-libs-8.0.11-1.el7.x86_64 2/4
インストール中 : mysql-community-client-8.0.11-1.el7.x86_64 3/4
インストール中 : mysql-community-server-8.0.11-1.el7.x86_64 4/4
検証中 : mysql-community-server-8.0.11-1.el7.x86_64 1/4
検証中 : mysql-community-client-8.0.11-1.el7.x86_64 2/4
検証中 : mysql-community-libs-8.0.11-1.el7.x86_64 3/4
検証中 : mysql-community-common-8.0.11-1.el7.x86_64 4/4
インストール:
mysql-community-server.x86_64 0:8.0.11-1.el7
依存性関連をインストールしました:
mysql-community-client.x86_64 0:8.0.11-1.el7 mysql-community-common.x86_64 0:8.0.11-1.el7 mysql-community-libs.x86_64 0:8.0.11-1.el7
完了しました!
MySQLを起動する
上手くいきました。
[exia@localhost ~]$ sudo systemctl start mysqld.service
[sudo] password for exia:
[exia@localhost ~]$ sudo systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2018-04-23 23:26:25 JST; 16s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 2522 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 2543 (mysqld)
Status: "SERVER_OPERATING"
CGroup: /system.slice/mysqld.service
└─2543 /usr/sbin/mysqld
4月 23 23:26:15 localhost.localdomain systemd[1]: Starting MySQL Server...
4月 23 23:26:25 localhost.localdomain systemd[1]: Started MySQL Server.
常時起動設定をおこなう
CentOS7ではこのコマンドは使えないってことなのでしょうか。
[exia@localhost ~]$ chkconfig --list mysqld
注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
特定のターゲットにおいて有効化されているサービスを確認するには、
'systemctl list-dependencies [target]' 。
サービス mysqld に関する情報の読み込み中にエラーが発生しました: そのようなファイルやディレクトリはありません
[exia@localhost ~]$ chkconfig --list mysqld.service
注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
特定のターゲットにおいて有効化されているサービスを確認するには、
'systemctl list-dependencies [target]' 。
サービス mysqld.service に関する情報の読み込み中にエラーが発生しました: そのようなファイルやディレクトリはありません
代わりにこちらを。
このコマンドの結果がenabled
なら常時起動設定がONになっています。
参考(Centos7でmysql のインストールとインストール時のエラー対処)
[exia@localhost ~]$ systemctl is-enabled mysqld.service
enabled
バージョン確認をする
MySQLのバージョンが8.0になっていることが確認できました。
[exia@localhost ~]$ mysql --version
mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)
完了!
終わりに
アップグレードしただけですね...。
といっても、仕事でもプライベートでもMySQLはphpmyadminでしか扱わないので、あんまり良くわかってない..。
ありがとうございました。