カテゴリー
Linux

【失敗】MySQL の公式リポジトリを導入してアップデートしてみる!ダメでした><。

今回は、上手く行かなかった、失敗した、記録でございます><。今後の何かのヒントになるかしら?と思い、投稿いたします。

なお、目的は MySQL の公式リポジトリを導入し、PHP は Remi リポジトリで、MySQL は MySQL リポジトリで簡単に管理したい!というものでした。

簡単には管理できなさそうで、断念いたしました><。

MySQL リポジトリのポイント

  • OS が CentOS5 の場合、リポジトリは Red Hat Enterprise Linux 5 (mysql-community-release-el5-5.noarch.rpm) をインストールする
  • yum コマンド時のリポジトリの指定は mysql56-community
  • mysql56-community リポジトリだと Remi からパッケージ名が変わった。mysql-server は mysql-community-server に、mysql-libs は mysql-community-libs に名前が変わった
  • PHP は Remi、MySQL は mysql56-community リポジトリを使用したいと思ったが、Remi リポジトリの MySQL が依存関係で競合を起こし、できない。
    → お手軽ではなさそう、あきらめた。

MySQL リポジトリをインストールしました記録♪

以前の次の投稿を見直しつつ、また、公式のインストール方法も参考にしつつ進めました。

まずはリポジトリのファイルをダウンロードです♪

[root@localhost ~]# wget http://dev.mysql.com/get/mysql-community-release-el5-5.noarch.rpm
--2014-05-09 22:54:46--  http://dev.mysql.com/get/mysql-community-release-el5-5.noarch.rpm
dev.mysql.com をDNSに問いあわせています... 137.254.60.11
dev.mysql.com|137.254.60.11|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm [続く]
--2014-05-09 22:54:47--  http://repo.mysql.com/mysql-community-release-el5-5.noarch.rpm
repo.mysql.com をDNSに問いあわせています... 23.67.184.96
repo.mysql.com|23.67.184.96|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5545 (5.4K) [application/x-redhat-package-manager]
`mysql-community-release-el5-5.noarch.rpm' に保存中

100%[=====================================================>] 5,545       --.-K/s 時間 0s

2014-05-09 22:54:48 (18.6 MB/s) - `mysql-community-release-el5-5.noarch.rpm' へ保存完了 [5545/5545]

[root@localhost ~]#

次にインストールです。普段は「rpm -Uvh」を使用しておりますが、依存関係で足りないものがあるとエラーが出ましたので、「yum localinstall」コマンドを使いました。

  • 「yum localinstall」 = 「rpm -Uvh」 + 依存関係解決 – 公開鍵解決

というように理解いたしました。こちらのページが参考になりました。

実際のインストールの様子がこちらですの♪

[root@localhost ~]# yum --nogpgcheck localinstall mysql-community-release-el5-5.noarch.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Examining mysql-community-release-el5-5.noarch.rpm: mysql-community-release-el5-5.noarch
Marking mysql-community-release-el5-5.noarch.rpm to be installed
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el5-5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package                    Arch      Version   Repository                                Size
===============================================================================================
Installing:
 mysql-community-release    noarch    el5-5     /mysql-community-release-el5-5.noarch    3.5 k

Transaction Summary
===============================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total size: 3.5 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mysql-community-release                                                 1/1

Installed:
  mysql-community-release.noarch 0:el5-5

Complete!
[root@localhost ~]#

「ll /etc/yum.repos.d/」で確認したところ、次の2つのファイルが生成されておりました。

  • mysql-community-source.repo
  • mysql-community.repo

生成されました2つのファイルの中身を確認いたしまして、mysql-community.repo で指定されているものがインストール時のリポジトリ指定に使われており、もう一方は使用されていないと判断いたしました。

具体的には、mysql56-community でございます。インストール時などに指定するときに使用いたしますわ。逆に、mysql57-community-dmr は避けます。

と言いますのも、次にあるように、開発版で不安定なリポジトリであるからですの。

# Note: MySQL 5.7 is currently in development. For use at your own risk.
# Please read with sub pages: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/

さて、確認をいたしました♪

これで使用可能状態になりましたけれども、yum 使用時は常に MySQL リポジトリを使う設定ですの。

使いたいタイミングでのみオンにしたいですので、設定を変更いたします。

  • /etc/yum.repos.d/mysql-community.repo の enabled の値を「0」に変更

これでオプションで指定した時のみ、リポジトリが有効になるようになりましたわ♪

mysql56-community リポジトリを使用してみまして、諦めました記録ですの><

MySQL をアップデートしてみます。。。

Remi リポジトリ版がインストール済みのため、依存関係でエラーとなりました><。入れ替えたい場合は、一旦削除してからインストールすればできるかしら?

[root@localhost ~]# yum --enablerepo=mysql56-community update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
mysql-connectors-community                                              | 2.5 kB     00:00
mysql-connectors-community/primary_db                                   | 4.6 kB     00:00
mysql56-community                                                       | 2.5 kB     00:00
mysql56-community/primary_db                                            |  24 kB     00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: mysql-community-libs-compat = 5.6.17-4.el5 for package: mysql
--> Processing Dependency: mysql-community-client = 5.6.17-4.el5 for package: mysql
---> Package mysql-community-libs.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: mysql-community-common = 5.6.17-4.el5 for package: mysql-community-libs
---> Package mysql-community-server.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16) for package: php-mysql
--> Running transaction check
---> Package mysql-community-client.i386 0:5.6.17-4.el5 set to be updated
---> Package mysql-community-common.i386 0:5.6.17-4.el5 set to be updated
---> Package mysql-community-libs-compat.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16) for package: php-mysql
--> Finished Dependency Resolution
php-mysql-5.4.28-1.el5.remi.i386 from installed has depsolving problems
  --> Missing Dependency: libmysqlclient.so.18(libmysqlclient_16) is needed by package php-mysql-5.4.28-1.el5.remi.i386 (installed)
Error: Missing Dependency: libmysqlclient.so.18(libmysqlclient_16) is needed by package php-mysql-5.4.28-1.el5.remi.i386 (installed)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
[root@localhost ~]#

アンインストール後、インストールしてみましたけれども><。戻します。。。

まずは Remi リポジトリの MySQL をアンインストールですの。設定ファイルや、依存関係でいろいろ削除やリネームされました。元に戻す場合は、次の内容を参考にいたします。

Running Transaction
  Erasing        : mysqlclient15                                                          1/12
  Erasing        : mysql-libs                                                             2/12
警告: /etc/my.cnf は /etc/my.cnf.rpmsave として保存されました。
  Erasing        : mysql-server                                                           3/12
警告: /var/log/mysqld.log は /var/log/mysqld.log.rpmsave として保存されました。
  Erasing        : mysql                                                                  4/12
  Erasing        : php-mysql                                                              5/12
  Erasing        : zabbix-web-japanese                                                    6/12
  Erasing        : zabbix-server                                                          7/12
警告: /etc/zabbix/zabbix_server.conf は /etc/zabbix/zabbix_server.conf.rpmsave として保存されました。
  Erasing        : zabbix-web-mysql                                                       8/12
  Erasing        : phpMyAdmin                                                             9/12
警告: /etc/httpd/conf.d/phpMyAdmin.conf は /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave として保存されました。
  Erasing        : perl-DBD-MySQL                                                        10/12
  Erasing        : zabbix-web                                                            11/12
警告: /etc/httpd/conf.d/zabbix.conf は /etc/httpd/conf.d/zabbix.conf.rpmsave として保存されました。
  Erasing        : zabbix-server-mysql                                                   12/12

続いてインストールですけれども、、、php-common のバージョンが合わないため、インストールできません><。

しかも、php-common のバージョンは Remi リポジトリよりも低く、使うのは難しいかしら。

おそらく、他の PHP 関連も、バージョンを下げる必要がありそうですわね。PHP も MySQL もひとつのサーバに同居させている状態では、PHP は Remi、MySQL は MySQL リポジトリでインストールし、両方共最新版を使うのは難しそうですわね><。。。

[root@localhost ~]# yum --enablerepo=mysql56-community install mysql mysqlclient15 mysql-community-libs mysql-community-server php-mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
No package mysqlclient15 available.
Resolving Dependencies
--> Running transaction check
---> Package mysql.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: mysql-community-libs-compat = 5.6.17-4.el5 for package: mysql
--> Processing Dependency: mysql-community-client = 5.6.17-4.el5 for package: mysql
---> Package mysql-community-libs.i386 0:5.6.17-4.el5 set to be updated
--> Processing Dependency: mysql-community-common = 5.6.17-4.el5 for package: mysql-community-libs
---> Package mysql-community-server.i386 0:5.6.17-4.el5 set to be updated
---> Package php-mysql.i386 0:5.1.6-44.el5_10 set to be updated
--> Processing Dependency: php-common = 5.1.6-44.el5_10 for package: php-mysql
--> Running transaction check
---> Package mysql-community-client.i386 0:5.6.17-4.el5 set to be updated
---> Package mysql-community-common.i386 0:5.6.17-4.el5 set to be updated
---> Package mysql-community-libs-compat.i386 0:5.6.17-4.el5 set to be updated
---> Package php-mysql.i386 0:5.1.6-44.el5_10 set to be updated
--> Processing Dependency: php-common = 5.1.6-44.el5_10 for package: php-mysql
--> Finished Dependency Resolution
php-mysql-5.1.6-44.el5_10.i386 from updates has depsolving problems
  --> Missing Dependency: php-common = 5.1.6-44.el5_10 is needed by package php-mysql-5.1.6-44.el5_10.i386 (updates)
Error: Missing Dependency: php-common = 5.1.6-44.el5_10 is needed by package php-mysql-5.1.6-44.el5_10.i386 (updates)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
[root@localhost ~]#

Remi リポジトリに合わせておきますの。ですので以前の状態に戻しますわ。

削除したときのログを参考にインストールいたしました。2階に分けましたけれども、もちろん1回で済ませられますわ。

  • yum –enablerepo=epel,remi,rpmforge install mysql mysql-libs mysql-server mysqlclient15 mysql-community-libs php-mysql
  • yum –enablerepo=epel,remi,rpmforge,zabbix,zabbix-non-supported install zabbix-web-japanese zabbix-server zabbix-web-mysql phpMyAdmin zabbix-web zabbix-server-mysql

diff コマンドで差分を確認してから、設定ファイルも以前の状態に戻しました。

  • cp -a /etc/my.cnf.rpmsave /etc/my.cnf
  • cp -a /etc/zabbix/zabbix_server.conf.rpmsave /etc/zabbix/zabbix_server.conf
  • cp -a /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave /etc/httpd/conf.d/phpMyAdmin.conf
  • cp -a /etc/httpd/conf.d/zabbix.conf.rpmsave /etc/httpd/conf.d/zabbix.conf

他にも失敗したことあれこれ記録><!

ダウンロード時の URL を https にいたしますとダウンロード出来ませんでした。。。

[root@localhost ~]# wget https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
--2014-05-09 21:30:57--  https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
dev.mysql.com をDNSに問いあわせています... 137.254.60.11
dev.mysql.com|137.254.60.11|:443 に接続しています... 接続しました。
エラー: 証明書に記載されている名前 `www.mysql.com' とホスト名 `dev.mysql.com' が一致しません
dev.mysql.com に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。
SSL による接続が確立できません。
[root@localhost ~]#

http でも yum localinstall コマンドで直接 URL を指定すると進みませんでしたの。。。

[root@localhost ~]# yum localinstall http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Cannot open file: http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm. Skipping.
Nothing to do
[root@localhost ~]#

依存関係で rpm でインストールできませんの。このため、「yum localinstall」を使用いたしました。

[root@localhost ~]# rpm -Uvh mysql-community-release-el6-5.noarch.rpm
エラー: 依存性の欠如:
rpmlib(FileDigests) <= 4.6.0-1 は mysql-community-release-el6-5.noarch に必要とされています
rpmlib(PayloadIsXz) <= 5.2-1 は mysql-community-release-el6-5.noarch に必要とされています
[root@localhost ~]#

公開鍵が導入されていないためにインストールできませんでしたの。–nogpgcheck オプションが必要ですの。

[root@localhost ~]# yum localinstall mysql-community-release-el6-5.noarch.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Examining mysql-community-release-el6-5.noarch.rpm: mysql-community-release-el6-5.noarch
Marking mysql-community-release-el6-5.noarch.rpm to be installed
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * epel: mirror.nus.edu.sg
 * extras: mirror.nus.edu.sg
 * remi: mirror.awanti.com
 * rpmforge: ftp.riken.jp
 * updates: mirror.nus.edu.sg
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el6-5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package                    Arch      Version   Repository                                Size
===============================================================================================
Installing:
 mysql-community-release    noarch    el6-5     /mysql-community-release-el6-5.noarch    4.3 k

Transaction Summary
===============================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total size: 4.3 k
Is this ok [y/N]: y
Downloading Packages:
警告: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 5072e1f5

Public key for mysql-community-release-el6-5.noarch.rpm is not installed
[root@localhost ~]#

正しくないバージョンのため、インストールに失敗しました。
CentOS5 でしたけれども最初、Red Hat Enterprise Linux 6 (mysql-community-release-el6-5.noarch.rpm) で試しましたの。

そうしましたら、ダメでした。エラーとなってインストールできませんでした。

Red Hat Enterprise Linux 5 (mysql-community-release-el5-5.noarch.rpm) だとインストールできましたわ。

[root@localhost ~]# yum --nogpgcheck localinstall mysql-community-release-el6-5.noarch.rpm
Loaded plugins: fastestmirror
Setting up Local Package Process
Examining mysql-community-release-el6-5.noarch.rpm: mysql-community-release-el6-5.noarch
Marking mysql-community-release-el6-5.noarch.rpm to be installed
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el6-5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package                    Arch      Version   Repository                                Size
===============================================================================================
Installing:
 mysql-community-release    noarch    el6-5     /mysql-community-release-el6-5.noarch    4.3 k

Transaction Summary
===============================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total size: 4.3 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 309, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 261, in main
    return_code = base.doTransaction()
  File "/usr/share/yum-cli/cli.py", line 421, in doTransaction
    print to_utf8(msg)
  File "/usr/lib/python2.4/codecs.py", line 178, in write
    data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 20: ordinal not in range(128)
[root@localhost ~]#

おわりに

なかなか難しいですの。。。おそらく、Remi で PHP、MySQL を管理しないようにするとやりやすそうに感じますけれども、どうなのかしら。。。

以上です。

コメントを残す