動かざることバグの如し

近づきたいよ 君の理想に

MySQLでSleepのコネクションを一発で殺す方法

MySQLでSleep状態のコネクションを一気に開放したくなるときってありますよね?(ない

まぁ主にRailsたんが勝手にコネクションプーリング張ってDBの接続数圧迫してしまってるときに減らす目的だが

環境

手順

まず対象のDBにログインして

select * from information_schema.processlist where Command = "Sleep"

でSleepになっているコネクションを抽出 *をつけているのは本当に殺していいのかの確認

問題なさそうなら

select *,concat('KILL ',id,';') from information_schema.processlist where Command = "Sleep"

を実行 すると

kill xxxxx;
kill xxxxx;

のようにkillコマンドがひたすら表示されるのでそれをコピって実行

Sequel Proなら結果を貼り付けて右側の「すべてのクエリを実行」をクリックすれば簡単

再度select * from information_schema.processlist where Command = "Sleep"を実行して減っているか確認

参考リンク

テーブルを検索フィルタリングしてくれるJSライブラリ「jquery.ex-table-filter」

やりたいこと

テーブルと検索フォームがあって、デフォルトではテーブルにはすべてのデータが表示されているが、検索フォームに文字を入力すると、入力したワードとマッチした 行のみが表示されるようにしたい。Ajax?そんなんいらんわボケ

それを一発で実現してくれるJavascriptライブラリがcyokodog/jquery.ex-table-filter

環境

  • jQuery依存
  • 本家では1.xを使っていたが3系のバージョンでも動作確認できた

サンプル

See the Pen pKMbod by thr3a (@thr3a) on CodePen.

ダウンロード

以下からZipをダウンロードして適当に解凍すればおk

cyokodog/jquery.ex-table-filter: テーブルフィルタリング機能を提供する jQuery プラグイン

コード

サンプルを見たほうが早いが、実際のJS部分はたったの一行 #mytableがターゲットのテーブルで#myfilterが検索フォームのinput要素だとして、

$('#mytable').exTableFilter('#myfilter');

って書くだけ。

ただし、デフォルトでは全カラム(列)が対象になってしまっているので、特定のカラムのみに絞りたい場合は

$('#mytable').exTableFilter({
  filters : {
    1 : '#myfilter'
  }
});

のように書く。1はカラムのindex番号。サンプルでは名前に相当する。

ほかにもたくさん機能がある。サンプルも充実しているので公式サイトを確認すべし

汎用性重視のテーブルフィルタリング系 jQuery プラグイン | CYOKODOG

Ubuntuでスタティックルートを永続的に設定する

環境

  • Ubuntu 18.04
  • 16.04でも同様

Ubuntu 静的ルーティング追加」とかでググると以下のようなサイトが出てくる。

Ubuntu 16.04 のスタティックルートの設定でハマった話 - try,try,try

多くのサイトでは2つの方法を紹介していて、1つ目は/etc/network/interfacesにpost-upでipコマンドを叩く方法

auto enp0s8
iface enp0s8 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    post-up ip route add 192.168.9.0/24 via 192.168.0.1

2つ目は/etc/network/if-up.d/static-routes.shスクリプトを置く方法

#!/bin/sh
ip route add 192.168.9.0/24 via 192.168.0.1

こちらは確かにservice networking restartでコケる。

が、そもそもUbuntuのネットワークの設定をNetworkManager経由で行っているとどちらの設定も反映されない

NetworkManagerのときの設定方法

だいぶ前置き長くなったけど /etc/NetworkManager/dispatcher.d/02-staticroutesに以下を作成

#!/bin/sh
ip route add 192.168.9.0/24 via 192.168.0.1

これでservice NetworkManager restart でイケた。

参考リンク

MySQLで特定のテーブルを除外してインポートする方法

結論

できないが、頑張ればできる(

環境

やりたいこと

例えばの話。 mysqldump sample > data.sqlでsampleデータベースをダンプしたファイルをインポートしたい。しかし、postsテーブルが巨大すぎてインポートできないから一旦他のテーブルだけインポートしたい。

残念ながらMySQLのコマンドではサポートできないので

sed '/INSERT INTO `posts`/d' data.sql > data_cut.sql

のようにsedコマンドを使うしかなかった

DDR4&UEFIのPCでメモリテスト

Memtest86+が死んでる件について

メモリテストの定番アプリケーションことMemtest86+

しかし最近は更新が滞っていて、最終更新が2013年(2018年6月29日現在)

当然最新のDDR4やUEFIの規格に対応できているはずもなく、上手く動作しない。そこでMemTest86でやってみた

普通は+の方が後発な気がして混乱するが、経緯として

Memtest86が誕生

Memtest86+Memtest86のフォークとして誕生

作者がMemtest86PassMarkへ売却

PassMark、Memtest86の開発続行するがライセンスをGPL→無料版/有料版に変更

Memtest86+ 開発滞る

といった感じ だからMemTest86は最新の規格にも対応しているのである。

機能とかライセンスの比較は公式サイトの比較ページが一番わかり易い

ダウンロード

ココから「Image for creating bootable CD (ISO format)」を選択 今回はV7.5を使用

起動

CD/USBメモリに焼いてBIOSの起動順番変えて頑張る

設定

すぐにスタートしてはならない

起動後キーボードの「T」を押して「Test Selection」に移動

ここでどの項目をチェックするか選択できる。特にメリットが無いくせに大変遅いので最後の Test 13 [Hammer Test]のチェックを外す

あとは「S」を押してメモリテストが開始される。以前のMemtestではこちらが終了するまで延々とテストしていたが、最新のでは4周したら自動で止まるようになっていた。

参考リンク