Monday, September 9, 2013

GoogleChromeのアドオンに入っていた画像ポップアップのadsを消す

適当なWEBサイトのソースコードを読んでいたところ、そのサイトとは無関係そうなスクリプトを読みに行っていて、しかも知らないタグが使われていたので調べてみました。

<script type="text/javascript" src="http://www.superfish.com/ws/sf_main.jsp?..(略)..></script>
<iframe> 略 </iframe>
<sfmsg id="sfMsgId" data="{"imageCount":0,"ip":"1.1.1.1"}"></sfmsg>

その結果、これはアドオンとともにブラウザに入り、適当な状況下でポップアップ画像を表示するらしいということがわかりました。
その状況に至ってないので詳しくは知りませんが、たとえばAmazonなどを閲覧しているときに他の商品の画像を見せてくるなどです。

これを消すべくChromeの設定からアドオンを調べてみると『Translate selection 1.4』が原因でした。
このアドオンの設定をよく見ると、チェックボックスとともに『I don't want to support you (turn off the ads).』という一文があります。 チェックを入れると上のコードは消えました。 その他、これと同様のスクリプトが自動で(?)埋め込まれるChromeアドオンには『Read Later Fast』があるそうです。

Sunday, March 10, 2013

MySQL:データベースのリストア


mysqldumpで取っておいたデータ(backupfile.sql)をデータベースにリストアしました。
データベースの一部をリストアなので、まずデータベースを作ってその後リストアします。

$mysql -u kinoko -p
Enter password:

mysql> create database kinokoDB;
Query OK, 1 row affected
mysql> exit;


$mysqldump -u kinoko -p KDB < backupfile.sql

失敗するので調べてみるとリストアはmysqldumpではなくmysqlを使うとのこと。

$mysql -u kinoko -p KDB < backupfile.sql

でリストアは成功。

日本語が化けているような気がするので文字コードセットを確認すると、

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


#characer_set_clientはクライアントが送信する文字コード。
#character_set_resultsはサーバが送信する文字コード。


character_set_serverがlatin1なのでutf8に変更します。が、my.cnfに変更を加えて再起動したものの起動せず。。

$vi /etc/my.cnf
[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8
default-set-server = utf8

$ mysqld_safe --user=root &

エラーログを見てみると、

$less /var/log/mysql/XXXX.err
130310 18:32:11 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
130310 18:32:11 [ERROR] Aborting

※mysqld_safeの起動時にも、my.cnfにもエラーログファイル名を指定していないため、XXXXはマシン名になってます。


unknown variable?
調べるとdefault-character-setはMySQL5.5からは使えないらしく、代わりに、character-set-serverを使うとのこと。

$vi /etc/my.cnf
[mysqld]
character-ser-server=utf8

書き替えたら無事に起動したので文字コードを確認すると、

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
  
全部utf8になりました。

cygwinコンソールの色変更


あまりにコンソールが見づらいので色を変更しました。

リポジトリの保存ディレクトリを作成してgitからダウンロード。

$mkdir ~/git/
$git clone https://github.com/mavnn/mintty-colors-solarized.git

このsol.lightを.bashrcで読むようにする(全部残しているけどsol.lightだけあればOK)

$cd mintty-colors-solarized
$echo mintty-colors-solarized/sol.light >>txt
echo "source ~/$(cat txt) " >> ~/.bashrc

.bashrcを読み直して適用
$source ~/.bashrc

MySQL:インストール後のユーザー作成

散々はまりましたが、順を追って整理するとこの手続きになりました。


ユーザー作成

mysqld_safeを起動した後、ユーザーを作ります。
ユーザー名:test、パスワードabcにします。

$mysql -u root
mysql> grant all privileges on *.* to test@localhost identified by 'abc'


このユーザーを使ってmysqlを使うときは、

$mysql -u test -pabc

または

$mysql -u test -p
Enter password:

でパスワード入力します。

ちなみに-pとabcの間にスペースが入るとabcはdatabaseと見なされます。

$ mysql -u test -p abc
Enter password:
ERROR 1049 (42000): Unknown database 'abc'


また、grant で権限を与える時、ユーザー名がtestだからと
mysql> grant all privileges on *.* to test identified by 'abc'

のように@localhostを書かずに済ますと、
$ mysql -u test -pabc
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)

というエラーが出ます。


rootのパスワード設定

rootのパスワードの設定方法は2つあって、

$mysqladmin -u root password PASSWORD

もしくは、mysqlのプロンプトで

mysql>set password for root@localhost=PASSWORD('パスワード');

です。


とてもわかりやすくて助かりました。


ユーザーの削除


ユーザーはmysqlデータベースのuserテーブルで管理されているので、削除する時は

mysql> use mysql;
mysql> delete from user where user='test'

のように普通に行を削除します。