2009年12月26日 星期六

線上環境的 MySQL 預設值修改(Jeremy 建議)

MySQL 灌好後, 有某些預設值是有爭議的(或者說, 是很沒意義的), Jeremy 提出了幾點建議~

下述取自 Jeremy Zawodny 的文章: Fixing Poor MySQL Default Configuration Values.

直接取重點, 就是把下面這幾行加到 /etc/mysql/my.cnf 最後面, 或者 /etc/mysql/conf.d/jeremy.cnf 裡.

max_connect_errors = 1844674407370954751
connect_timeout = 20
skip-name-resolve
slave_net_timeout = 30

為何要加這些, 可以參考原文, 或者參考 DK 此篇文章: 無論如何都應該修改的 MySQL 預設值.

恢復 windows7 釘選到工作列

桌機莫名其妙的 釘選到工作列 這選項從右見功能表內消失了
找了一下
只要把機碼中一個字串值補回去重新開機就好了

將下列內容複製到 記事本(NotePad) 存檔時附檔名改為 XXX.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile]
"IsShortcut"=""

再此檔上點擊兩下會出現確認對話視窗 都按 是(YES)
正確登錄視窗再按 確定 後
Reboot
完成



2009年12月25日 星期五

解決Windows Live Messenger無法安裝問題

會出現安裝成是裝到一半就卡住出現錯誤訊息代碼似乎是有過一次的安裝失敗後就會呈現無法再次正常安裝
或者是有使用過免安裝版的MSN也可能導致如此

錯誤代碼 0X80070643

因為Windows Live Messenger的安裝前導程式無法將部分已存在的程式移除導致新程式也無法覆蓋上

處理步驟如下:

1.下載安裝 Windows Installer CleanUp Utility

!! Windows 7 需用右鍵 *以管理員身分執行* 來進行安裝
微軟官方下載連結
非官方下載連結
以上兩個下載位置擇一下載安裝即可

2.如圖所示將全部 WINDOWS LIVE 開頭的項目全部選取來 按 Remove


3.Exit

4.再次執行安裝前導程式安裝

PS: 如有軟體不能移除或是不能修復的問題皆可使用 Windows Installer CleanUp Utility 來嘗試一下, 說不一定就迎刃而解。

2009年12月24日 星期四

Linux install mytop

http://jeremy.zawodny.com/mysql/mytop/
mytop 是一個用 perl 寫的 console-based 的mysql效能監控工具

要使用它必須先安裝一些 perl 的 module
DBI
Term::ReadKey
Term::ANSIColor
Time::HiRes

用 CPAN 安裝這些 module
首先要切換為 root 權限

[root@localhost]# perl -MCPAN -e shell

/usr/lib/perl5/5.8.5/CPAN/Config.pm initialized.

...略...

Are you ready for manual configuration? [yes] no (直接採用預設值自動設定即可, 輸入 no)


...略...

cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install Term::ReadKey
CPAN: Storable loaded ok
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:

...略...

/usr/bin/make install -- OK

cpan> install Term::ANSIColor
Running install for module Term::ANSIColor
Running make for R/RR/RRA/ANSIColor-2.02.tar.gz

...略...

/usr/bin/make install -- OK

cpan> install Time::HiRes
Running install for module Time::HiRes
Running make for J/JH/JHI/Time-HiRes-1.9719.tar.gz
Fetching with LWP:

...略...

/usr/bin/make install -- OK

cpan> quit
Terminal does not support GetHistory.
Lockfile removed.

wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
tar -zxvf mytop-1.6.tar.gz
cd mytop-1.6
perl Makefile.PL
make
make test
make install

設定預設設定檔:
cd ~
vi .mytop

填入相關帳號資料格式如下
user=mytop
pass=
host=127.0.0.1
db=test
delay=1
port=3306
batchmode=0
header=1
color=1
idle=1


其他詳細說明可用此指令觀看:
perldoc mytop

其他參考資料:
如出現
Use of uninitialized value in substitution (s///) at /usr/bin/mytop line 958.
依下網址內 fix diff patch
http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/7ac750bd208e819a

Ubuntu Linux 9.10 的 MyTop QPS 修正
http://plog.longwin.com.tw/my_note-unix/2009/12/24/ubuntu-910-mytop-qps-fix-2009

SSD mysql 效能測試
http://jnlin.org/category/network/mysql/

2009年12月21日 星期一

2009-12-19 21:02 芮氏規模6.8 花蓮外海強震


一開始尚不知震央在哪, 中央氣象局網站也被塞爆
噗浪上北中南都有網友感受到搖很大.. 高雄表弟也打來問

在新家又要過了一年了! 前天的強震真是嚇到了..921後最強的一次! 生平碰到的第二次大地震
這次是在新家!12樓~~搖的真久阿~搖了2~3分鐘...搖到頭都暈了
旁邊鐵架上吊的風鈴都搖到叮叮噹噹的做響..還好都沒事~但部分牆上出現了一些非結構性裂痕
電梯也自動停用


2009年12月18日 星期五

MySQL server has gone away

"MySQL server has gone away."

通常 MySQL C API 回傳這個 error message 的時候都是 MySQL server crash,或是有什麼 nasty 的事情發生了。但是如果 MySQL server 好端端的沒事的話呢?

MySQL C client API,在 5.0.3 以前,會設定一個 reconnect flag,如果被 server timeout 或是 disconnect,那麼在 issue query 以前會自己 reconnect。所以如果你用舊版的程式,在新版的 API (newer than 5.0.3) 上面 compile,那麼可能就會爆了這麼一下;因為新版裡面這個 flag 是設成 0,當 client 被 server disconnect 或是 timeout 的時候,再要下 query 的話,就會發現 server 不見了...

要從 client code 解這個問題的話,5.0.13 以後的 API 版本,可以設定讓他吃MYSQL_OPT_RECONNECT 來解決。

For example,


mysql_init(&mysql);
mysql_options(&mysql, MYSQL_OPT_RECONNECT, "1");
mysql_real_connect("blahblah");

就可以了。這個故事告訴我們... 升級以後,文件一定要記得看 -_-

2009年12月17日 星期四

FreeBSD上啟用 DTrace

FreeBSD 7.1 開始有提供 由 Solaris 移植來的 DTrace 動態追蹤功能

但預設是不起動的!
一使用

$ dtrace -l
dtrace: failed to initialize dtrace: DTrace device not available on system

會出現這樣的訊息!

要使用它必須重新 build kernel 安裝

首先修改 GENERIC or 您自己的 kernel 設定檔
將下列設定注解拿掉OR新增

$ ee /usr/src/sys/amd64/conf/GENERIC
options KDTRACE_HOOKS # all architectures
options KDTRACE_FRAME # amd64-only

$ cd /usr/obj/usr/src/sys/GENERIC/
$ make clean
$ cd /usr/src
$ make buildkernel WITH_CTF=1
$ make installkernel


ok後 reboot

再來
$ kldload dtraceall

這時就可以使用了


上述啟用方式由 FreeBSD 7.1 で DTrace を使う準備 得來

相關資料:
DTrace User Guide