MySQL8.0のクライアントのみインストール
MySQLのCLIを使って、クラウド上のMySQLインスタンスにアクセスしたいけど、
MySQLを何も考えずにインストールすると、MySQLサーバもインストールされちゃいます。
Clientのみインストールする方法をメモ。
インストール方法について、Qiita記事がいろいろHITしますが、
結局公式に全部載っているので、
これを参考にします。
最初公式手順見ずに適当にやってたらいくつかハマった点があったので、
ハマったところリストとして最後に紹介しています。
yumリポジトリを登録する
community-clientのみインストールする場合は、MySQL公式のリポジトリを /etc/yum.repos.d/ に登録して、
そこからcommunity-clientを指定してyum(dnf)インストールします。
まず、/etc/yum.repos.d/にrepoを登録します。
vi
などのエディタで直接作成するか、
yum(dnf)-comfig-manager
コマンドで自動で作成する方法もあります。
yum(dnf)-config-manager
で作成するとファイル名とか書式が汚くなるので、
今回はviで自作します。
baseURLはここを参照します。
# cd /etc/yum.repos.d/
# vi mysql-community.repo
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
- 確認
# dnf repolist enabled | grep mysql
を実行して、出てきたらOK。
# dnf repolist enabled | grep mysql
mysql80-community MySQL 8.0 Community Server
GPG鍵をインストール
さて、↑のリポジトリ登録で、gpgcheckやgpgkeyというものが出てきました。
GPG鍵は、このリポジトリに含まれているパッケージの信ぴょう性や完全性を証明するための暗号鍵です。
デフォルトではインストールされていないようなので、これを取得します。
参照のページを見ると、こちらで公開されているようです。
-
Search String
の欄にmysql
と入力してDo the search!
ボタンを押します。 - 一番上に
pub 4096R/3A79BD29 2021-12-14 MySQL Release Engineering <mysql-build@oss.oracle.com>
が出てくると思うので、リンクになっている3A79BD29
をクリックします。 - pub-keyが表示されるので、
BEGIN PGP ~ END PGP
までをコピーして、/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
にペーストします。 - 以上で取得完了!
moduleを無効化する
どうやらRHEL8をはじめとするRedHat系のディストリビューションでは、
yum→dnfを利用することになったことで、新たな概念としてmodule
というものが実装されているようです。
このmoduleですが、RHEL8系だとデフォルトで提供されているmysqlモジュールが存在していて、
このmoduleのせいでさっきインストールしてきたMySQLのリポジトリが参照されないようになってしまいます。
せっかく手動でDLしてきたMySQLのリポジトリを表示するには、# dnf module disable
を実行します。
# dnf module disable mysql
メタデータの期限切れの最終確認: 0:22:12 時間前の 2022年05月25日 21時31分14秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================
モジュールストリームの有効化中:
mysql 8.0
トランザクションの概要
===============================================================================================================================================================================================
これでよろしいですか? [y/N]: y
完了しました!
インストール
問題なければこれでインストールできます!
# dnf install mysql-community-client
メタデータの期限切れの最終確認: 0:04:32 時間前の 2022年05月25日 22時14分13秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================
インストール:
mysql-community-client x86_64 8.0.29-1.el8 mysql80-community 14 M
依存関係のインストール:
mysql-community-client-plugins x86_64 8.0.29-1.el8 mysql80-community 2.4 M
mysql-community-common x86_64 8.0.29-1.el8 mysql80-community 636 k
mysql-community-libs x86_64 8.0.29-1.el8 mysql80-community 1.5 M
トランザクションの概要
===============================================================================================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 19 M
インストール後のサイズ: 102 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): mysql-community-client-8.0.29-1.el8.x86_64.rpm 86 MB/s | 14 MB 00:00
(2/4): mysql-community-libs-8.0.29-1.el8.x86_64.rpm 71 MB/s | 1.5 MB 00:00
(3/4): mysql-community-common-8.0.29-1.el8.x86_64.rpm 1.2 MB/s | 636 kB 00:00
(4/4): mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm 3.7 MB/s | 2.4 MB 00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 29 MB/s | 19 MB 00:00
MySQL 8.0 Community Server 3.1 MB/s | 3.1 kB 00:00
GPG 鍵 0x3A79BD29 をインポート中:
Userid : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
Fingerprint: 859B E8D7 C586 F538 430B 19C2 467B 942D 3A79 BD29
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : mysql-community-client-plugins-8.0.29-1.el8.x86_64 1/4
インストール中 : mysql-community-common-8.0.29-1.el8.x86_64 2/4
インストール中 : mysql-community-libs-8.0.29-1.el8.x86_64 3/4
scriptletの実行中: mysql-community-libs-8.0.29-1.el8.x86_64 3/4
インストール中 : mysql-community-client-8.0.29-1.el8.x86_64 4/4
scriptletの実行中: mysql-community-client-8.0.29-1.el8.x86_64 4/4
検証 : mysql-community-client-8.0.29-1.el8.x86_64 1/4
検証 : mysql-community-client-plugins-8.0.29-1.el8.x86_64 2/4
検証 : mysql-community-common-8.0.29-1.el8.x86_64 3/4
検証 : mysql-community-libs-8.0.29-1.el8.x86_64 4/4
インストール済み:
mysql-community-client-8.0.29-1.el8.x86_64 mysql-community-client-plugins-8.0.29-1.el8.x86_64 mysql-community-common-8.0.29-1.el8.x86_64 mysql-community-libs-8.0.29-1.el8.x86_64
完了しました!
- 確認
# mysql --version
mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community Server - GPL)
↑mysqlコマンドが使えることが確認できた。
# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
↑サーバはインストールしてないので、サーバとしては使えない。
ハマったところリスト
- GPG鍵が登録されていない
- GPG鍵が間違っている
- moduleを無効化していない
- 中途半端なインストールしてたせいで中途半端にキャッシュが残ってバグる
moduleに関しては初見だっだので、目からうろこでした。
エラー例1 : GPG鍵が登録されていない
鍵がインストールされてない状態でdnf install mysql-community-client
しようとしても、GPG鍵エラーがでてインストールできません。
# dnf install mysql-community-client
メタデータの期限切れの最終確認: 0:15:45 時間前の 2022年05月25日 21時31分14秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================
インストール:
mysql-community-client x86_64 8.0.29-1.el8 mysql80-community 14 M
依存関係のインストール:
mysql-community-client-plugins x86_64 8.0.29-1.el8 mysql80-community 2.4 M
mysql-community-common x86_64 8.0.29-1.el8 mysql80-community 636 k
mysql-community-libs x86_64 8.0.29-1.el8 mysql80-community 1.5 M
トランザクションの概要
===============================================================================================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 19 M
インストール後のサイズ: 102 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): mysql-community-common-8.0.29-1.el8.x86_64.rpm 1.2 MB/s | 636 kB 00:00
(2/4): mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm 3.7 MB/s | 2.4 MB 00:00
(3/4): mysql-community-libs-8.0.29-1.el8.x86_64.rpm 5.9 MB/s | 1.5 MB 00:00
(4/4): mysql-community-client-8.0.29-1.el8.x86_64.rpm 14 MB/s | 14 MB 00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 18 MB/s | 19 MB 00:01
mysql-community-client-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません
mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません
mysql-community-common-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません
mysql-community-libs-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: GPG の確認に失敗しました
yum.repos.d/mysql-community.repo で指定したように、/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
をダウンロードしてくる必要があります。
エラー例2 : GPG鍵が間違ってい
公式のGPG署名マニュアルに載っている鍵をRPM-GPG-KEY-mysql
に登録したところ、
鍵が間違っているといわれてエラーになりました。
```# dnf install mysql-community-client
メタデータの期限切れの最終確認: 0:01:31 時間前の 2022年05月25日 22時14分13秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================
インストール:
mysql-community-client x86_64 8.0.29-1.el8 mysql80-community 14 M
依存関係のインストール:
mysql-community-client-plugins x86_64 8.0.29-1.el8 mysql80-community 2.4 M
mysql-community-common x86_64 8.0.29-1.el8 mysql80-community 636 k
mysql-community-libs x86_64 8.0.29-1.el8 mysql80-community 1.5 M
トランザクションの概要
===============================================================================================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 19 M
インストール後のサイズ: 102 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): mysql-community-common-8.0.29-1.el8.x86_64.rpm 826 kB/s | 636 kB 00:00
(2/4): mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm 2.5 MB/s | 2.4 MB 00:00
(3/4): mysql-community-libs-8.0.29-1.el8.x86_64.rpm 3.8 MB/s | 1.5 MB 00:00
(4/4): mysql-community-client-8.0.29-1.el8.x86_64.rpm 9.6 MB/s | 14 MB 00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 13 MB/s | 19 MB 00:01
MySQL 8.0 Community Server 27 MB/s | 27 kB 00:00
GPG 鍵 0x5072E1F5 をインポート中:
Userid : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?
mysql-community-client-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: mysql-community-client-8.0.29-1.el8.x86_64
GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: mysql-community-client-plugins-8.0.29-1.el8.x86_64
GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
mysql-community-common-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: mysql-community-common-8.0.29-1.el8.x86_64
GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
mysql-community-libs-8.0.29-1.el8.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: mysql-community-libs-8.0.29-1.el8.x86_64
GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: GPG の確認に失敗しました
おそらく、公式ページに古い鍵が表示されているようです。
手順で紹介した通り、http://pgp.mit.edu/
からDLした鍵を使いましょう。
↓こちらの方法でも鍵をimportできるようです
エラー例3 : moduleが無効化されておらず、mysql-community-clientが見つからない
今回検証したRockyLinux8には、AppStreamというデフォルトで入っているリポジトリにMySQLが入ってるので、
# dnf install -y mysql
でインストールは可能ですが、mysql-community-client
単体をインストールすることはできません。
これは、RHEL8系のディストリビューションで実装されているmodule
によるものです。
# dnf install mysql-community-client
メタデータの期限切れの最終確認: 0:02:06 時間前の 2022年05月25日 20時55分06秒 に実施しました。
一致した引数がありません: mysql-community-client
エラー: 一致するものが見つかりません: mysql-community-client
手動で持ってきたMySQLリポジトリを利用する場合は、このmoduleを無効化します。
# dnf module disable mysql
エラー例4 : 中途半端なインストールしてたせいで中途半端にキャッシュが残ってバグる
今回記事作成のためにわざとdnf install でエラー起こしたりしてたら、
キャッシュが中途半端に残ってしまい、 パッケージがAlready downloaded とかでてバグりました。
ログに解決方法# dnf clean packages
を実行してくれとあるので実行したら治りました。
# dnf install mysql-community-client
メタデータの期限切れの最終確認: 0:04:19 時間前の 2022年05月25日 22時14分13秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================
インストール:
mysql-community-client x86_64 8.0.29-1.el8 mysql80-community 14 M
依存関係のインストール:
mysql-community-client-plugins x86_64 8.0.29-1.el8 mysql80-community 2.4 M
mysql-community-common x86_64 8.0.29-1.el8 mysql80-community 636 k
mysql-community-libs x86_64 8.0.29-1.el8 mysql80-community 1.5 M
トランザクションの概要
===============================================================================================================================================================================================
インストール 4 パッケージ
合計サイズ: 19 M
インストール後のサイズ: 102 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
[SKIPPED] mysql-community-client-8.0.29-1.el8.x86_64.rpm: Already downloaded
[SKIPPED] mysql-community-client-plugins-8.0.29-1.el8.x86_64.rpm: Already downloaded
[SKIPPED] mysql-community-common-8.0.29-1.el8.x86_64.rpm: Already downloaded
[SKIPPED] mysql-community-libs-8.0.29-1.el8.x86_64.rpm: Already downloaded
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: パッケージのダウンロード中にエラーが発生しました:
mysql-community-client-8.0.29-1.el8.x86_64: Already downloaded
mysql-community-client-plugins-8.0.29-1.el8.x86_64: Already downloaded
mysql-community-common-8.0.29-1.el8.x86_64: Already downloaded
mysql-community-libs-8.0.29-1.el8.x86_64: Already downloaded
- なおす
[root@imade-gcp01 rpm-gpg]# dnf clean packages
4 ファイルが削除されました
以上です!
感想
重い腰を上げてMySQL5.7からMySQL8.0を使い始めることになりましたが、
インストールで所々躓いたのでメモしておきました。
特に、インストールするOSのディストリビューションによってはmoduleの無効化などが必要となってくる点が注意が必要ですね。
エラーメッセージでこの記事に飛んできた方は、参考にしてみてください。