mysql: 外部からの接続を受け付けなくなって困った話

きっかけは、Ubuntu 14.04 上で運用中の MySQL 5.6 をアップグレードしたこと。apt-get install がうまく行かないので、悪戦苦闘した後に、/var/lib/mysql のバックアップを取ってから apt-get purge してから最新の MySQL 5.6 をインストールして、/var/lib…

さくらの専用サーバ:リモートコンソールの使い方

さくらの専用サーバ(※ VPSやクラウドではない)を使っていてSSH でログインできなくなってしまった場合には、リモートコンソールでコンソール画面を開いて直接ログインを試みることが可能です。注意事項: Windows の Chrome/Firefox を使うこと(私の環境…

keepalived: Memory allocation problem

久しぶりに keepalived のセットアップを行いました。昔のメモを見ながら、その通りにやったつもりなのですが、うまく起動しません。ログを見ると、 SMTP_CHECK Error connecting to server [192.168.0.172]:25 Removing service [192.168.0.172]:25 from VS…

タブをスペースに展開する(メモ)

カレントディレクトリ以下にあるすべてのHTMLファイルの行頭のタブをスペース2個に変換するには次のコマンドを実行する。 find . -name '*.html' ! -type d -exec bash -c 'expand -t 2 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;

jsdom では data-* 属性をうまく扱えない(メモ)

表題の通り。 https://github.com/tmpvar/jsdom/issues/961 としてチケットに載っているが、v8 側の対応が必要だそうで、jsdom チームとしては対応できないようだ。残念。

タブをスペースに展開する(メモ)

カレントディレクトリ以下にあるすべてのHTMLファイルの行頭のタブをスペース2個に変換するには次のコマンドを実行する。 find . -name '*.html' ! -type d -exec bash -c 'expand -t 2 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;参考: http://stackoverflow.c…

Ubuntu から Linux Mint へ移行

先日(2014年11月)、遅ればせながら Ubuntu 14.04 をインストールして使い始めたのですが、ATOK X3 との相性が悪く、頻繁に Unity Dash がクラッシュし、挙げ句の果てにはログイン画面が表示されなくなりました。次に kubuntu を試してみたのですが、ATOK X…

ShellShock: サポート切れ Ubuntu 8.04 の bash にパッチを当てる

何と Ubuntu 8.04 のインストールされたサーバがまだ動いていました。ShellShock に対応しようと思いましたが、Ubuntu 8.04 はサポート切れなので apt-get でアップデートはできません。以下、手動でインストールする手順: mkdir src && cd src wget http:/…

Rails: モデルオブジェクトの特定の属性を選んで to_hash/to_json

今、ある Rails アプリケーションの User モデルクラスに id, name, email, created_at, updated_at という5つの属性があるとします。id = 1 の User オブジェクトに関して、name と email だけの値をハッシュまたはJSON文字列として返すにはどうすればいい…

Rails 4.1: Implicit join references were removed

Rails 4.0 から Rails 4.1 にアップグレードすると、次のような警告が出ることがあります。 DEPRECATION WARNING: Implicit join references were removed with Rails 4.1. Make sure to remove this configuration because it does nothing.config/applicat…

mysql: ERROR 1008 (HY000): Can't drop database 'test'; database doesn't exist

show databases では test が出てくるのに、drop できないという問題に遭遇。なぜか、/var/lib/mysql/test の owner が mysql ではなく root になっていた。とりあえず chown -R mysql:mysql /var/lib/mysql/test したら drop できるようになった。

Google Compute Engine: Ubuntu Server 14.04 LTS のイメージを登録する

2014年08月18日現在、残念ながら Google Compute Engine (GCE) の「イメージ」として Ubuntu を選択することはできません。しかし、自分でイメージを作って登録すれば選べるようになります。作り方は HOW TO INSTALL UBUNTU 14.04 LTS SERVER ON GCE に詳し…

netbeans: プロジェクトウィンドウのエラーマークをリセットする方法(メモ)

NetBeans はファイルのパースエラーが解消した後も、エラーマークを表示し続けることがあります。その場合は、NetBeans を終了し、キャッシュディレクトリを消して、再び NetBeans を起動すればエラーマークが消えます。キャッシュディレクトリは、次の場所…

サーバに設置したSSL証明書の確認(メモ)

サーバに設置したSSL証明書をターミナルから確認するコマンドは、次の通り: openssl s_client -CApath /etc/ssl/certs -connect example.com:443 OKな場合の結果: Verify return code: 0 (ok)NGな場合の結果の一例: Verify return code: 21 (unable to ve…

RSpec/Rails: uninitialized constant が出たら bin/spring stop を実行してみると吉

Rails 4 になってから RSpec で書かれたテストを実行した際に、uninitialized constant Admin のようなエラーが出ることがあります。Rails アプリケーションのソースコードで Admin というクラスなりモジュールなりは定義されているというのに。この場合、と…

RE:View の pdfmaker で日本語フォントを埋め込む

RE:View を使って PDF を作ってみたのですが、Ubuntu 上の Adobe Reader では日本語が文字化けして読めませんでした。たぶんフォントを埋め込む設定が必要なのだろうと思ったのですが、RE:View のドキュメント等には解説が載っていません。悪戦苦闘の末、次…

AWS/Ruby: OpenSSL::SSL::SSLError が出る問題への対処法(メモ)

Rails アプリケーションを Amazon Linux 上で動かしていて、OpenSSL::SSL::SSLError という例外に遭遇。open-uri の open メソッドで、外部の URL からファイルを取得するところで。解決法は、http://d.hatena.ne.jp/komiyak/20130508/1367993536 および htt…

ubuntu: 2つ目の MongoDB を upstart service として追加する(作業メモ)

いま、Ubuntu Server 12.04において MongoDB が27017番ポートで動いています。これとは別のプロセスとして、27018番ポートでMongoDB をサービスとして動かすように設定します。 % sudo cp /etc/mongodb.conf /etc/mongodb.2nd.conf % sudo vim /etc/mongodb.…

ubuntu: gedit の Ruby コード編集環境を整える

Ubuntu には gedit という(実は)結構使えるテキストエディタが標準で付いています。しかし、デフォルトの状態では Ruby 1.9 で導入されたシンタックスにちゃんと色が付かなかったりします。以下、環境を整える手順をご紹介します。(1) apt-get で gedit-pl…

Rails & MySQL: トランザクション分離レベルをグローバルに設定する

MySQL (InnoDB) のトランザクション分離レベルは、デフォルトで REPEATABLE READ です。この設定では、トランザクションの最初のクエリでデータベースのスナップショットを取ってしまうので、他のトランザクションがコミットした変更が見えません。Web アプ…

Raspberry Pi: Wi-Fi USB アダプタ(Wi-Fi ドングル)の選択

ここのところ、Raspberry Pi を使う仕事に関わっています。Wi-Fi USB アダプタ(Wi-Fi ドングル)をいくつか買って試してみたところ、アダプタが熱を持つためか、しばらくするとネットワークが切れてしまう、という現象に悩まされました。結局、長時間の使用…

Raspberry Pi: OpenCV 2.4.6.1 のビルドに失敗

Installation in Linux — OpenCV 2.4.13.7 documentation の説明に沿って、Raspberry Pi で OpenCV 2.4.6.1 をビルドしてみたが失敗。 [ 84%] Building CXX object modules/gpu/CMakeFiles/opencv_perf_gpu.dir/perf/perf_imgproc.cpp.o c++: internal compi…

Keepalived: bogus VRRP packet received on ...

Keepalived を動かしていて、/var/log/syslog に次のようなログが現れることがあります。 ip address associated with VRID not present in received packet : 192.168.0.1 one or more VIP associated with VRID mismatch actual MASTER advert bogus VRRP …

Ubuntu Server 12.04 (LTS) に MySQL 5.6 を dpkg でインストール(作業メモ)

% wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12-debian6.0-x86_64.deb % sudo dpkg -i mysql-5.6.12-debian6.0-x86_64.deb % sudo apt-get install libaio1 perl-modules % sudo useradd -s /bin/false mysql % sudo /opt/mysql/server-5.6/…

Xen 仮想マシン(domU) の root パスワードをリセットする(Ubuntu Server 12.04 編)

以下、仮想マシン(domU) の名前を omega とします。dom0 も domU も Ubuntu Server 12.04 です。dom0 のコンソールで作業します。 % sudo -s $ modprobe loop $ xm shutdown omega $ mount -o loop /home/xen/domains/omega/disk.img /mnt $ chroot /mnt $ p…

Ubuntu Server 12.04 を Xen Dom0 としてセットアップ

仮想化ソフトウェアである Xen を Ubuntu Server 12.04 にインストールしてみました。以下、その記録です。今回は実運用環境として使うためではなく、Xen を試用してみるのが目的です。すでに、Windows や Ubuntu Desktop がインストールされている少し古め…

Linux: mkpasswd, makepasswd, pwgen -- パスワードを生成するコマンドはどれを使うか

いまCentOSとUbuntuを両方とも対象にした原稿を書いているところです。ランダムなパスワードを生成するという手順の説明で、ちょっと困ってしまいました。CentOS 6.3ではパッケージexpectをインストールするとmkpasswdというコマンドが使えるようになり、Ubu…

Rails, RSpec, Spork: モデルが自動でリロードされない場合の対処法

RSpec + Spork で Rails アプリケーションのテストを実行する際、モデルクラスを書き換えてもテスト結果が変わらないことがあります。config/environents/test.rb の config.cache_classes の値を true から false に変えれば、この症状はとりあえず治まりま…

RSpec: double, stub, stub_chain, etc. -- cheat sheet

double あるメソッドを持ったオブジェクトを作る。doubleは「代役」の意。 user = double("user", name: "Taro") user.name #=> "Taro"第1引数の "user" はRSpecが失敗を報告するのに使うラベルに過ぎない(省略可)。 mock および stub というエイリアスが…

CentOS 6: manはLC_ALLよりLC_MESSAGESを優先する?

setlocale(3)のman pageによれば、環境変数LC_ALLはLC_MESSAGESよりも優先されるはずなのですが、私の CentOS 6.3 では export LC_ALL=ja_JP.UTF-8 export LC_MESSAGES=en_US.UTF-8のように環境変数をセットしても、日本語でマニュアルが表示される。ただし…