HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

MySQL Workbenchが停止したときの対処法

どんな現象?

MySQL Workbenchが突如、落ちることがあります。
しかも、一度落ちたら立ち上がらない。
しかも、結構頻発します。

「アプリケーションが応答していません」
みたいなダイアログが出て、固まってしまうんですね。

ちなみに原因はわかっておりません…

【2017/02/20 追記】
動かなくなったときの設定ファイルとの差分を見てみましたが、それでもわからず…。

でも対処法はわかる

「%APPDATA%\MySQL\Workbench」ここにある「wb_options.xml」このファイル。
このファイルを消すだけで、起動するようになります。

しかし…
設定した内容がどうも消えてしまうようなんですよね。
再設定にいつも困るので、それもメモをしておきます。

【2017/02/20 追記】
最近は接続が成功した後に、「wb_options.xml」をリネームして同じフォルダに入れております。
で、動かなくなったらこれと入れ替える。

最低限やっておきたい設定

SQLは大文字派

f:id:hrroct:20161101145723p:plain

WorkbenchにはSQLの入力補助機能がありますが、小文字なんですよね…
大文字で入力したい私は、チェックを外します。

MyISAMなのにオートコミット?

f:id:hrroct:20161101145724p:plain

Workbenchはデフォルトでオートコミット機能がONになっています。
なんて危険な…!
というわけで、私はオートコミット機能をOFFにしています(チェックを外します)。
データを反映させるときは、COMMITを忘れずに。

タブよりスペース派

f:id:hrroct:20161101145722p:plain

タブキーを入力時に、タブではなくスペースを入力したい人は、チェックを入れましょう。
私は入れたい派です。

最後に…

Workbenchが落ちないのが一番なんですがね…
しばらくこれでしのごうと思います。

2016年版!apt-cyg を入れよう

はじめに

Cygwinを導入しているのなら、apt-cygを入れると便利です。
apt-cygはCygwinのパッケージマネージャーです。

Cygwinのexeファイルを実行することで、インストールもできますけど…
毎回あれを使うのも大変ですし。

注意事項

ちなみに、公式からfolkされたいろんな種類のapt-cygがあるようです。
使用できるオプションも違いがあります。
今回は公式のものをひとつだけ載せておきます。

公式サイトはこちら。MITライセンスです。
github.com

導入方法

公式サイトにあるとおりですが…私は"/bin"を"/usr/local/bin"にしました。
適当な作業ディレクトリにて、下記を実行します。
(ただし64ビット版にはlynxすら入っていないようなので、ない場合はブラウザから直接下記URLにアクセスして、「右クリック」→「名前をつけて保存」がよいかと思います)

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /usr/local/bin

参考

別の種類のapt-cygについては、こちらがかなり詳しいので、見てみることをおすすめします。
seesaawiki.jp

以上でした!

Cygwinにwatchコマンドを入れたい

結論からいうと、これ↓で使えるようになります。

$ apt-cyg install procps

"watch"を直接指定してもダメみたいです。
findしてみた結果が↓こちら。

$ apt-cyg find watch
Cache directory is /setup
Mirror is http://**********
Updating setup.ini
signature verified: setup.bz2.sig
signature verified: setup.ini.sig
Updated setup.ini

Searching for installed packages matching watch:

Searching for installable packages matching watch:
xfce4-mailwatch-plugin
xfce4-mailwatch-plugin-debuginfo

ちなみに、apt-cygを使用するにはこちらをどうぞ。
hrroct.hatenablog.com

単なる覚え書きでした。

Firefoxだけbeforeunloadの挙動が違う…

はじめに

一般的に、離脱防止の目的で使用されるであろう、beforeunloadイベント。
タブを閉じたり、ブラウザの「戻る」操作をしたときにダイアログが表示されるため、嫌われモノとなるアレです。

developer.mozilla.org

嫌われモノとわかっていても、実装しなければならないこともある。
これはしょうがない…。

さて。

テスト時にようやく気づいたのですが、Firefoxだけ異なる挙動をするようです。
(テスト時のバージョンは47.0です)
ちなみに、メッセージの内容がダイアログに表示されない云々…という話ではありません。

何が違うのか?

ダイアログが表示されない場合があります。
ページが表示されて、何も操作をせずにページを移動しようとする/閉じようとすると、ダイアログが表示されません。

どこでもいいので、クリックしてから閉じると表示されます。
マウスホイールくるくるでも、表示されます。
(実際スクロールしなくてもOK)
何かしらの操作をすることが、トリガーになっているようです。

調べてみた

どこかにこれに関する情報はないものか?と思ったらこちらにありました。

www.fxsitecompat.com

Firefox44から、こういう動作なのですね。
結構前じゃないか…。
全然知りませんでした。

Cygwinを使ってSymfony 3 を導入してみる

はじめに

今回、新しいWebサイトを構築するにあたって、Symfony 3を使ってみたいと思ったのがきっかけです。
環境はWindows 10にCygwin上でSymfonyのプロジェクトを作成するところまでやりたいと思います。

流れ

まずはSymfony 3のダウンロード…なんですが

ダウンロードページはこちら
Download Symfony Framework and Components

とうとうsymfonyインストーラーが用意されたのですね。
しかし私はなぜかインストーラーが使えなかったので、

If you can't use the installer try instead the Symfony installation based on Composer.

の指示に従って、Composerを使うことに。
のっけから普通の道から外れていますが…がんばって進めます。

Composerのダウンロード

URLはこちらになります。
Installing and Configuring Symfony (The Symfony Book)

ということで、まずはComposerを入れなければいけません。
うーん、前提が多い…。
Installing Composer (The Symfony CookBook)

$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading 1.0.3...

Composer successfully installed to: /home/****/work/project/composer.phar
Use it: php composer.phar

成功した場合にはこのように表示されますが、PHPに必要なオプションが存在しないと失敗します。
根気よくTry and Errorしましょう。

Cygwinなら、インストーラーから探してインストールするのが楽かと思います。
PHPソースコードからリコンパイルしてももちろんOKです。

$ mv composer.phar /usr/local/bin/composer

Composerを移動して、準備完了です。

ようやくSymfonyのプロジェクト作成

いざ、Symfonyのプロジェクトを作成するコマンドを叩きます。

$ composer create-project symfony/framework-standard-edition my_project_name

何かが足りない場合には、やはり失敗します。
成功するまでやはり懲りずにTry and Errorしましょう。
私の場合は、ctype_digit関数がないと言われてFatal Errorが発生していました。
関数の有無はこんな感じ↓で調べるとよいです。

$ php -r "echo (function_exists('ctype_digit'))? 'true'.PHP_EOL : 'false'.PHP_EOL;"

存在する関数名ならtrueが、存在しない関数ならfalseを返します。

それとPHPのデフォルトタイムゾーンの設定がされていないぞと怒られました。
php.iniにて設定をしておきましょう。

$ cat /etc/php5/php.ini | grep date.timezone
; http://php.net/date.timezone
;date.timezone =
date.timezone = "Asia/Tokyo"

途中でデータベースとメーラーの設定について聞かれます。
決まっていなければ、このままEnterを押して続行して問題ありません。

database_host (127.0.0.1):
database_port (null):
database_name (symfony):
database_user (root):
database_password (null):
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
secret (ThisTokenIsNotSoSecretChangeIt):

my_project_nameの中身はこんな感じになっています。

$ ls -al
合計 109
drwxr-xr-x+ 1 **** ****     0 55 18:17 .
drwxr-xr-x+ 1 **** ****     0 55 18:17 ..
-rw-r--r--  1 **** ****   248 55 18:17 .gitignore
drwxr-xr-x+ 1 **** ****     0 55 18:17 app
drwxr-xr-x+ 1 **** ****     0 55 18:17 bin
-rw-r--r--  1 **** ****  2599 55 18:17 composer.json
-rw-r--r--  1 **** **** 70459 55 18:17 composer.lock
-rw-r--r--  1 **** ****  1065 55 18:17 LICENSE
-rw-r--r--  1 **** ****   973 55 18:17 phpunit.xml.dist
-rw-r--r--  1 **** ****  2285 55 18:17 README.md
drwxr-xr-x+ 1 **** ****     0 55 18:17 src
drwxr-xr-x+ 1 **** ****     0 55 18:17 tests
drwxr-xr-x+ 1 **** ****     0 55 18:19 var
drwxr-xr-x+ 1 **** ****     0 55 18:17 vendor
drwxr-xr-x+ 1 **** ****     0 55 18:17 web
$ php bin/console --version
Symfony version 3.0.5 - app/dev/debug

バージョンは何も指定しないと、3.0.5になるようですね。
(2016年5月5日現在)

最後に動作確認を

PHPのビルトインサーバーを立ち上げて、繋いでみるのが一番楽だと思います。

$ bin/console server:run

上記のコマンドを実行して、ブラウザから↓にアクセスします。
http://127.0.0.1:8000/

f:id:hrroct:20160505190113p:plain

正常に動いていれば、こんな↑ページにアクセスできると思います。


私の場合、ここでFatal Errorが出まして…直接ファイルを修正して突破しました。

$ vi my_project_name/var/cache/dev/classes.php

5863行目の } を ; にしました。
PHPをよく知らない人は、いじらないほうが無難かも…。


以上でした。