Ubuntu12.04にMySQL5.6をインストールしてmysqld_safe --user=mysqlしたら、mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended で起動しない。

問題

$mysqld_safe --user=mysql
をした時に、mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended などと出て、異常終了してしまう。

原因

古いパッケージがもっている/etc/mysql/conf.dが邪魔になっていた。

mysql5.6に対し、mysql-commonというのが5.5.34でいつのまにかあった。

$ dpkg -l
ii  mysql               5.6.15              MySQL built using CMake
rc  mysql-common        5.5.34-0ubuntu0.12. MySQL database common files, e.g. /etc/mysql/my.cnf

解決方法

purgeして、/etc/mysql/conf.dも削除すると直る。

$ sudo apt-get purge mysql-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  mysql-common*
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 61 個。
この操作後に追加で 0 B のディスク容量が消費されます。
続行しますか [Y/n]? Y
(データベースを読み込んでいます ... 現在 67363 個のファイルとディレクトリがインストールされています。)
mysql-common を削除しています ...
mysql-common の設定ファイルを削除しています ...
dpkg: 警告: mysql-common の削除中、ディレクトリ '/etc/mysql' が空でないため削除できませんでした。

$ cd /etc
$ ls mysql/
conf.d
$ sudo rm -rf mysql/

$ mysqld_safe --user=mysql &
[1] 14881
$ 131222 05:07:57 mysqld_safe Logging to '/vagrant/mysql_data/vagrant-ubuntu-precise.err'.
131222 05:07:57 mysqld_safe Starting mysqld daemon with databases from /vagrant/mysql_data

他のどのパッケージを入れた際に余計なのが混入してきたのかは不明。

Ubuntu 12.0.4に MySQL 5.6をインストールして、my.cnfが無い時の対処方法

/opt/mysql/server-5.6 にインストールされている場合、
/opt/mysql/server-5.6/scriptsにmysql_install_dbというスクリプトがあるので実行すればデフォルトのものがコピーされる。

sudo scripts/mysql_install_db

これで/opt/mysql/server-5.6/my.cnfができる。

結局MySQL5.6のインストールは嵌められたので、インストールトラブル対処をまとめ中。

Ubuntu12.0.4でpythonのlxml をインストールするまで

解答

  1. easy_installがpython-setuptoolsに入っているのでインストール
  2. lxmlに使うlibxsltがlibxslt-dev(libxslt1-dev)に入っているのでインストール
  3. lxmlのビルドに使うPython.hがpython2.7-devに入っているのでインストール

以下、詳細

$ sudo apt-get install python-setuptools
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  python-setuptools
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 64 個。
441 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,068 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu/ precise/main python-setuptools all 0.6.24-1ubuntu1 [441 kB]
441 kB を 1秒 で取得しました (404 kB/s)    
以前に未選択のパッケージ python-setuptools を選択しています。
(データベースを読み込んでいます ... 現在 55610 個のファイルとディレクトリがインストールされています。)
(.../python-setuptools_0.6.24-1ubuntu1_all.deb から) python-setuptools を展開しています...
python-setuptools (0.6.24-1ubuntu1) を設定しています ...
$ sudo apt-get install libxslt-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
注意、'libxslt-dev' の代わりに 'libxslt1-dev' を選択しています
以下の特別パッケージがインストールされます:
  libxml2-dev libxslt1.1
以下のパッケージが新たにインストールされます:
  libxml2-dev libxslt1-dev libxslt1.1
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 64 個。
1,535 kB のアーカイブを取得する必要があります。
この操作後に追加で 5,629 kB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libxslt1.1 amd64 1.1.26-8ubuntu1.3 [167 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libxml2-dev amd64 2.7.8.dfsg-5.1ubuntu4.6 [805 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libxslt1-dev amd64 1.1.26-8ubuntu1.3 [564 kB]
1,535 kB を 1秒 で取得しました (1,427 kB/s)
以前に未選択のパッケージ libxslt1.1 を選択しています。
(データベースを読み込んでいます ... 現在 55739 個のファイルとディレクトリがインストールされています。)
(.../libxslt1.1_1.1.26-8ubuntu1.3_amd64.deb から) libxslt1.1 を展開しています...
以前に未選択のパッケージ libxml2-dev を選択しています。
(.../libxml2-dev_2.7.8.dfsg-5.1ubuntu4.6_amd64.deb から) libxml2-dev を展開しています...
以前に未選択のパッケージ libxslt1-dev を選択しています。
(.../libxslt1-dev_1.1.26-8ubuntu1.3_amd64.deb から) libxslt1-dev を展開しています...
man-db のトリガを処理しています ...
libxslt1.1 (1.1.26-8ubuntu1.3) を設定しています ...
libxml2-dev (2.7.8.dfsg-5.1ubuntu4.6) を設定しています ...
libxslt1-dev (1.1.26-8ubuntu1.3) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
$ sudo apt-get install python2.7-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libexpat1-dev libpython2.7 libssl-dev libssl-doc python2.7 python2.7-minimal
  zlib1g-dev
提案パッケージ:
  python2.7-doc binfmt-support
以下のパッケージが新たにインストールされます:
  libexpat1-dev libssl-dev libssl-doc python2.7-dev zlib1g-dev
以下のパッケージはアップグレードされます:
  libpython2.7 python2.7 python2.7-minimal
アップグレード: 3 個、新規インストール: 5 個、削除: 0 個、保留: 61 個。
38.1 MB のアーカイブを取得する必要があります。
この操作後に追加で 48.3 MB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libpython2.7 amd64 2.7.3-0ubuntu3.4 [1,188 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main python2.7 amd64 2.7.3-0ubuntu3.4 [2,674 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main python2.7-minimal amd64 2.7.3-0ubuntu3.4 [1,739 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libexpat1-dev amd64 2.0.1-7.2ubuntu1.1 [216 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu/ precise/main zlib1g-dev amd64 1:1.2.3.4.dfsg-3ubuntu4 [165 kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libssl-dev amd64 1.0.1-4ubuntu5.10 [1,573 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main libssl-doc all 1.0.1-4ubuntu5.10 [1,036 kB]
取得:8 http://jp.archive.ubuntu.com/ubuntu/ precise-updates/main python2.7-dev amd64 2.7.3-0ubuntu3.4 [29.5 MB]
38.1 MB を 46秒 で取得しました (825 kB/s)                                      
(データベースを読み込んでいます ... 現在 55966 個のファイルとディレクトリがインストールされています。)
libpython2.7 2.7.3-0ubuntu3.2 を (.../libpython2.7_2.7.3-0ubuntu3.4_amd64.deb で) 置換するための準備をしています ...
libpython2.7 を展開し、置換しています...
python2.7 2.7.3-0ubuntu3.2 を (.../python2.7_2.7.3-0ubuntu3.4_amd64.deb で) 置換するための準備をしています ...
python2.7 を展開し、置換しています...
python2.7-minimal 2.7.3-0ubuntu3.2 を (.../python2.7-minimal_2.7.3-0ubuntu3.4_amd64.deb で) 置換するための準備をしています ...
python2.7-minimal を展開し、置換しています...
man-db のトリガを処理しています ...
python2.7-minimal (2.7.3-0ubuntu3.4) を設定しています ...
以前に未選択のパッケージ libexpat1-dev を選択しています。
(データベースを読み込んでいます ... 現在 55966 個のファイルとディレクトリがインストールされています。)
(.../libexpat1-dev_2.0.1-7.2ubuntu1.1_amd64.deb から) libexpat1-dev を展開しています...
以前に未選択のパッケージ zlib1g-dev を選択しています。
(.../zlib1g-dev_1%3a1.2.3.4.dfsg-3ubuntu4_amd64.deb から) zlib1g-dev を展開しています...
以前に未選択のパッケージ libssl-dev を選択しています。
(.../libssl-dev_1.0.1-4ubuntu5.10_amd64.deb から) libssl-dev を展開しています...
以前に未選択のパッケージ libssl-doc を選択しています。
(.../libssl-doc_1.0.1-4ubuntu5.10_all.deb から) libssl-doc を展開しています...
以前に未選択のパッケージ python2.7-dev を選択しています。
(.../python2.7-dev_2.7.3-0ubuntu3.4_amd64.deb から) python2.7-dev を展開しています...
man-db のトリガを処理しています ...
python2.7 (2.7.3-0ubuntu3.4) を設定しています ...
libpython2.7 (2.7.3-0ubuntu3.4) を設定しています ...
libexpat1-dev (2.0.1-7.2ubuntu1.1) を設定しています ...
zlib1g-dev (1:1.2.3.4.dfsg-3ubuntu4) を設定しています ...
libssl-dev (1.0.1-4ubuntu5.10) を設定しています ...
libssl-doc (1.0.1-4ubuntu5.10) を設定しています ...
python2.7-dev (2.7.3-0ubuntu3.4) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
$ sudo easy_install lxml

以下のエラーでlibxslt1-devをインストールする必要があり少し戸惑った。

$ sudo apt-get install libxslt
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ libxslt が見つかりません

ERROR: /bin/sh: 1: xslt-config: not found
** make sure the development packages of libxml2 and libxslt are installed **

以下のエラーはpython2.7-devのインストールで解決した。

src/lxml/lxml.etree.c:16:20: 致命的エラー: Python.h: そのようなファイルやディレクトリはありません
コンパイルを停止しました。

clojure-mode の新しい方を使う

以前はclojure-modeというと jochu/clojure-mode だったわけですが、最近はそこからForkした clojure-emacs/clojure-modeで良かったようです。ここにもtechnomancyさんのアイコン出てますね。

~/.emacs.d/init.elに以下を追加(Emacs24以上)

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(unless (package-installed-p 'clojure-mode)
  (package-refresh-contents)
  (package-install 'clojure-mode))

jochu/clojure-mode は最近終わったのかと思ってたら、3年前にdeprecated宣言出てた… NOTE: This repository is deprecated;

しばらく見ていなかった間に、色々後継機に切り替わってるんですね。

Grenchman で lein run する方法。

おいしいClojure入門にjarkでJVMの起動待ち時間をなくせるよ!と書いてあったので使おうと思ったら、jarkでlein runできるのかできないのか英語の掲示板で揉めてて、作者が今度のversionでjark leiningen. ARGSできるようにすると言っててそのversion過ぎてもできてないのか何なのかわかんないし、追う気にもならなかったのだけど、最近Leiningenの作者がインスパイアされて、Grenchmanという、同様のをリリースしていたので試してみた。これ https://github.com/technomancy/grenchman
nREPLを立ち上げておいて、そこへ投げるからオーバーヘッドが削減できるらしい。
Leiningen2.3.4以降で使えるとのこと。使い方間違っていたら教えて下さい。

vagrant@vagrant-ubuntu-precise:/vagrant$ nohup lein repl :headless &
[1] 3240
vagrant@vagrant-ubuntu-precise:/vagrant$ nohup: 入力を無視し、出力を `nohup.out' に追記します

vagrant@vagrant-ubuntu-precise:/vagrant$ tail -1 nohup.out 
nREPL server started on port 58829 on host 127.0.0.1

vagrant@vagrant-ubuntu-precise:/vagrant$ cd project_dir/
vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ grench repl :connect 58829
user=> 
(ctrl+D)

これでgrench lein runできる。
実行速度比較。

vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ time grench lein run
Hello, World!

real	0m2.319s
user	0m0.016s
sys	0m0.012s

vagrant@vagrant-ubuntu-precise:/vagrant/project_dir$ time lein run
Hello, World!

real	0m3.785s
user	0m1.724s
sys	0m1.112s

だいぶ速い。

おいしいClojure入門 (Software Design plus)

おいしいClojure入門 (Software Design plus)