CentOS6でyum updateしようとしたらdatabase is lockedと出たときの対処法(暫定)

都内も今日は雪が振りました。
最近寒いですがこのサイトを見に来てくれた方々は元気でお過ごしでしょうか。

僕は今週風邪を引きました。(どうでもいいですね..

さて、タイトルの通り、yum updateしようとしたらdatabase is lockedと出てしまったので、その対処ログを残しておきます。

エラーが出たところ:

# yum update
読み込んだプラグイン:fastestmirror
更新処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
エラー: database is locked

とりあえずyumキャッシュを削除してみたが効果はなかった。

# yum clean all
読み込んだプラグイン:fastestmirror
リポジトリーを清掃しています: base cr datadog extras mysql-connectors-community mysql-tools-community mysql56-community nginx nginx-amplify updates vz-base vz-updates
すべて掃除しています
Cleaning up list of fastest mirrors

この後、yum updateしても変わらず。

同じような状況に直面した方のblogを見たら、サーバ自体(この場合はopenvzコンテナ)を再起動しないと直らなかったとありました。
リンク: http://quags.net/archives/155

という訳でシステム再起動ぽちっとな。


# reboot

システム再起動後、yum updateをしたらアップデートできました。

個人レベルのサーバではこの対処法で良いのですが、業務用のサーバだと気軽に再起動できないのでまずいですね。

再起動せずに対処可能な方法あったらコメント頂けるととっても助かります…!

2017/06/23 追記

– /var/lib/rpmをバックアップし、rpm rebuilddbを実施,システムリブートして様子を見る

# cp -Rp /var/lib/rpm /var/lib/rpm.backup
# rpm -vv --rebuilddb

# reboot (注意)


助けてニャー

2018/01/26 追記
システムを再起動しなくても、MySQLサービスの再起動でyumが再度動くことに気づいた。
原因は今のところまだわからず、です。

# yum update
警告: 共有ロックを獲得できません (/var/lib/rpm/Packages)
読み込んだプラグイン:fastestmirror
更新処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: mirror.bebout.net
 * updates: ftp.iij.ad.jp
base                                                                              | 3.7 kB     00:00
cr                                                                                | 2.9 kB     00:00
extras                                                                            | 3.4 kB     00:00
mysql-connectors-community                                                        | 2.5 kB     00:00
mysql-tools-community                                                             | 2.5 kB     00:00
mysql56-community                                                                 | 2.5 kB     00:00
remi-safe                                                                         | 2.9 kB     00:00
updates                                                                           | 3.4 kB     00:00
updates/primary_db                                                                | 5.8 MB     00:01
vz-base                                                                           |  951 B     00:00

(process:7926): GLib-CRITICAL **: g_timer_stop: assertion `timer != NULL' failed

(process:7926): GLib-CRITICAL **: g_timer_destroy: assertion `timer != NULL' failed
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 298, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 146, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 440, in doCommands
    return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
  File "/usr/share/yum-cli/yumcommands.py", line 233, in doCommand
    return base.updatePkgs(extcmds, update_to=(basecmd == 'update-to'))
  File "/usr/share/yum-cli/cli.py", line 730, in updatePkgs
    self.update()
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 3824, in update
    updates = self.up.getUpdatesTuples()
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 926, in 
    up = property(fget=lambda self: self._getUpdates(),
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 744, in _getUpdates
    self._up = rpmUtils.updates.Updates(self.rpmdb.simplePkgList(), self.pkgSack.simplePkgList())
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 907, in 
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 687, in _getSacks
    self.repos.populateSack(which=repos)
  File "/usr/lib/python2.6/site-packages/yum/repos.py", line 324, in populateSack
    sack.populate(repo, mdtype, callback, cacheonly)
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 187, in populate
    dobj = repo_cache_function(xml, csum)
  File "/usr/lib64/python2.6/site-packages/sqlitecachec.py", line 46, in getPrimary
    self.repoid))
TypeError: Can not create db_info table: database is locked
# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

治った..

 

スポンサードリンク

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL