MySQL 5.5から MariaDB 10.0 へのアップグレードで、ログインできなくなる

MySQL 5.5 から MariaDB 10.0 へアップグレードする話。

MySQLからMariaDBは、データ本体、(データーベースの方の)ログファイルともに、そのまま移行できるようになっているようだ。 とはいえ、一応バックアップは採った。

mysqldump -u root -p --events --all-databases > mysqlbackup.out

あと、my.cnf のバックアップも採っておく。

あとは、お気楽にやってみる。。。

sudo apt-get remove mysql-server
sudo apt-get autoremove

sudo apt-get mariadb-server

MariaDB のインストール時に、画面が切り替わって、本当にアップグレードするか?と聞いてくるので、Yes と答えれば、完了。

のはずだったのだが、mysql コマンドでログインできない。 ネットで検索すると sudo すれば入れるとの情報があったが、何をやっても入れず、滝のように汗が出る。。。

結局、以下のような情報を見つけて、パスワードのリセットをし、無事に移行完了。

How to reset your MariaDB root password?


root# service mysql stop

root# mysqld_safe --skip-grant-tables &

root# mysql -u root

MariaDB [(none)]> use mysql;
MariaDB [(none)]> update user set password=PASSWORD("NEWPASSWORD") where User='root';
MariaDB > flush privileges;
MariaDB [(none)]> exit; 

root# service mysql restart

root だけこの方法で変更したら、他のユーザーについては問題なかったようです。

久しぶりにビビりました。。。。

nginx の allow と deny

nginx の 設定で、allow, deny を書くときの話。
細かい書き方は、ブログネタの定番(?)とも言えそうなネタなので、細かくは書かないが、ネット上の例を見ると、location の中に書いている例が多く見られる。 実際、location で指定したい場合が多いのだと思うが、マッチングの都合で、一カ所だけでは済まずに、複数箇所に書かなければならないケースも出てくると思う。

しかし、考えてみるに、管理用のディレクトリは location で塞ぐしかないが、バーチャルホストそのものにアクセスして欲しくない場合は、server の方に書いてしまえば、一発で防げる。

すごく当たり前のことを言っているようだが。。。
allow, deny は、http, server, location, limit_except の中にに書くことが出来る。
必要に応じて、書き分けよう。

ownCloud 入れてみた

Raspberry Pi 3Bに、Western Digital のHDDを繋げて、ownCloud 入れて、ファイルサーバにしてみた。

フロントは nginx + php-fpm で、dbは MySQL である。 というか、この WordPress と共有。
特に、ラズパイだから、何という要素はなく、普通に Linux のインストール手順で入れただけ。

パフォーマンスも全く問題ないと思われる。 多分、ネットワーク回線の方が遅い。
今時、自分でサーバを持つこと、自分でクラウド環境を作ることにどれほどの意味があるのかは微妙だが、自前でやってみるのは楽しい。

色々、やってみているけど、ラズパイ。 普通にサーバとして使える。
これから暑い季節になるが、冷却ケースくらいは必要かな。。。と思っている。

追記
全然、はまらなかった。。。みたいに書いたが、その後、tmp が小さすぎて、大きなファイルの転送に失敗した。 以前、tmpfs (ramdisk)に tmp を置いて Micro SD の寿命を延ばそうとしていたのが裏目に出た。
今は、HDD で動かしているので、素直に tmp を HDD に動かして解決。