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 だけこの方法で変更したら、他のユーザーについては問題なかったようです。

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

Raspberry Pi の ステータスをグラフ表示: rpgraph

Raspberry Pi で運用中のサーバの状態をグラフ表示しようと思った。
最初は、MRTG を入れてみたんだけど、SNMP で拾うのが手間だし、拾えても思ったような値じゃない場合ある。

Raspberry Pi のCPU温度センサーの値なんかも拾いたいので、結局スクリプトで拾うことにしたのだが、書いているうちに、SNMPじゃなくて全部、スクリプトで拾えばいいじゃん。 それに、別にMRTGじゃなくてもいいじゃん! と思えてきたので、ぱぱっと自作してみた。

CRONでシステム状況をファイルに保存して、html ファイルに加工。 出力は Google Charts ライブラリを使って、クライアントサイドで描画してしまえばいい。ということで、こんな感じのやつが出来た。

リアルタイムでのグラフはここ

シェルスクリプトと、awk を使って、適当に。。。

需要があるかは分からないが、一応 GitHub で公開中。

https://github.com/sakisan28/rpgraph

初 GitHub 。お手柔らかに。。。

Raspberry Pi で プロジェクト管理

Raspberry Pi サーバに、スケジュール管理用の Web 画面を作ろうと思って、色々画策した。

最初は、Nextcloud (ownCloud からバージョンアップした) 上の Deck というアプリでやろうかと思ったが、あまりにシンプルすぎてやめた。

次に Redmine を入れてみたのだが。。。 Raspberry Pi ではちょっと重い感じがするし、個人で使うには機能や設定が多すぎて面倒な気がしてやめる。 でも、高機能は魅力だし、ガントチャートなんかも良くできていると思うので、またいつか戻ってくるかも。

で、Kanboard というのを入れてみることにした。

カンバン方式のプロジェクトマネージメントで、分かりやすいし、そこそこに日本語化もされている。 インストールは、PHPが動く環境が出来ていれば、基本的に展開して、仮想ディレクトリの設定をするだけである。 ちょうど WordPress のインストールみたいな感じ。

動作が軽いし、画面もシンプルで気に入っている。

gogs との連携も出来るみたいなので、時間があったらやってみたい。

Raspberry Pi で Docker (Windows で Wifi 設定)

以前、やろうとしてやらなかったネタ。

Raspberry Pi には、専用の Docker 環境 Hypriot がある。

サイトを見ると、テロリスト風のちょっと悪趣味なサイトだが、モノ自体はまとも。

インストーラーは Windows / Mac / Linux に対応しているが、Windows の場合、インストーラで Wifi を設定できない。 どうしたものかと思っていたが、イメージ書き込み後に device-init.yaml を編集したらいけた。

# hostname for your HypriotOS device
hostname: black-pearl

# optional wireless network settings
wifi:
  interfaces:
     wlan0:
       ssid: "SSIDをここに書く"
       password: "パスワードをここに書く"

ファイル自体は最初からあるが、wifi: からのくだりはコメントアウトされているので、行頭の#を取るのをお忘れ無く。

で、使ってみた感想だが。。。
確かに Raspberry Pi に何かをインストールテストする際には使える。
しかし、メモリも少ないし、動作も重いので、あまり使えないな。。。という印象。

やっぱり、Intel NUC あたりに 8GB くらい載っけて、x64 の4コアくらいで動かしたいな。。。Docker は。

参考: https://github.com/hypriot/device-init

Raspberry Pi で GitHub 的なやつ

最近コードを書くこととはご無沙汰だし、cssとかを除けば、書く予定も特にないのだが、Raspberry Pi の設定ファイルをいじくっていて、やっぱり履歴管理が欲しいなと思ったので、Git で管理していた。

特に ssh の運用で問題は無かったのだが、なんとなく GitHub 的な Web UI が欲しくなったので、Raspberry Pi で動かすことにした。

検討の対象として上がったのは、GitLab, GitBucket, gogs の3つ。

このうち、GitLab に関しては、事前に Windows マシン上の Docker で試したところ、規模が大きすぎる感じがしたので、除外。

GitBucket と gogs については、動かしてみた。

GitBucket に関しては、Java VM だけ入っていれば、とりあえず動く。 サーブレットエンジン上で動かすのがセオリーっぽいけど、本体の war ファイルに Jetty がバンドルされているので、これでも動かせる。

Raspbian では、Java VM は OpenJDK と Oracle JDK がパッケージに入っていて、どちらも選べるが、Oracle JDK の方が動作が軽いので、こちらがお勧め。

動かしてみた感じ、少し重い感じもするが、個人で使用する分には問題なく動く。

メモリの使用量もそれほど凶悪ではない。 Javaのヒープメモリサイズは、Jetty の分も入れても 96MB (-Xms96M -Xmx96M) くらいにしておけば動く感じ。 -verbose:gc を見ていると 64MB でもぎりぎり動きそうだが、落ちたら嫌なのでこの辺か。

Java サーブレットは、以前の仕事で使っていたし、作者が日本人ということもあって好感が持てたが、その後、gogs を試して、その軽さに驚愕し、結局使わなくなった。

gogs も、インストールは簡単。Raspberry Pi 用バイナリ (v2 / armv6) も用意されているし、基本、展開するだけなので、とても簡単。

で、サクサク動く。メモリは数10MBくらいしか使わない。

フォントだけは気に入らなかったので、Custom Template の設定はした。

 

Raspberry Pi で GitHub 風システムを立ち上げるなら、 gogs がお勧めである。