【Ubuntu 12.04】AppArmor 令 MySQL 不能啟動

上星期把 netbook 的 Ubuntu 升級到 12.04 後,發現不能啟動 MySQL server,然後在 /var/log/syslog 內發現以下一行 log。

Sep 11 16:01:36 potter kernel: [ 2463.153201] type=1400 audit(1347350496.093:36): apparmor=」DENIED」 operation=」mknod」 parent=6583 profile=」/usr/sbin/mysqld」 name=」/run/mysqld/mysqld.sock」 pid=6622 comm=」mysqld」 requested_mask=」c」 denied_mask=」c」 fsuid=114 ouid=114

在網上看過這篇文章後,只需在 /etc/apparmor.d/usr.sbin.mysqld 內,把以下 mysqld 相關兩行修改 (或直接加入),便能修正問題。

/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

改為:

/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,

最後只需 sudo service mysql restart 重新啟動便可。如果不能,可以執行 sudo service apparmor restart 然後再試。

Ubuntu Precise 12.04 LTS 升級問題解決方法

沒想過在升級第二台 Ubuntu Oneiric 11.10 到 Precise 12.04 LTS 時,會遇上一些問題,所以寫了這篇 blog 來記述一下。

兩天前把第一台 (Lenovo ThinkPad T400s) Oneiric 11.10 升級時,只是使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便能順利升級了。

解決 Couldn’t configure pre-depend libtinfo5 for libncurses5 問題

今天便把第二台 (Core2Duo + Gigabyte Intel G33 底板的自組機) Oneiric 11.10 升級時,同樣使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,在下載新套件後,卻出現以下錯誤。

無法安裝升級,提交時發生錯誤
『E:Couldn’t configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.』
回復原有系統狀態

經過 google 後,至少有兩個方法可以嘗試解決。第一個方法是先升級 apt 套件後再升級 (Bug #924079),第二個方法是先升級 libtinfo5、libncurses5 及 libncursesw5 套件後再升級,我選擇了先升級 apt 的方法。

$ sed 『s/oneiric/precise/g』 -i /etc/apt/sources.list
$ apt-get update
$ apt-get install apt python-apt
$ sed 『s/precise/oneiric/g』 -i /etc/apt/sources.list

然後再使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便可解決上述問題。

解決 USB 鍵盤滑鼠不能用問題

在更新管理員完成升級後,指示我重新啟動電腦。在重新啟動電腦後,在出現 LightDM 用戶登入畫面後,便發現我的 USB 鍵盤 keybOneiric 11.10 的 3.0.0 舊版本 kerneloard 和 mouse 也不能用!!!因為尚未登入,Network Manager 沒有自動經 DHCP 拿取 IP 地址,所以也不能經由網絡以 SSH 登入。 orz

使用過另一個 Linux 系統 mount 了 Precise 的硬碟分區來看 log,發現 kernel 不能偵測到 USB keyboard 和 mouse。還找到 init: Failed to create pty – disabling logging for job 等問題。

經過 google 閱讀不同類似情況後 (Bug #990870) [1] [2] ,最後嘗試在啟動電腦後 grub 開機 boot loader,在「Ubuntu, with Linux 3.2.0-24-generic」 一行上按 e 編輯修改設定,來載入仍在系統上的 Oneiric 11.10 的 3.0.0 舊版本 kernel

linux    /boot/vmlinuz-3.2.0-24-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

把上述一行改為以下一行,然後接 F10 去啟動系統。USB Keyboard 和 Mouse 在舊 kernel 下仍能使用,在LightDM 用戶登入畫面 就能進入 Unity 或 GNOME。

linux    /boot/vmlinuz-3.0.0-17-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

登入後,啟動終端機 (terminal) 並執行以下 apt-get 指令。

$ sudo apt-get -f install

然後 apt-get 會繼續進行未完成的套件安裝和設定,終於能用 USB keyboard 和 mouse 了!!!