2010年4月26日 星期一

FreeBSD 找不到 Share Library 的解決方法


  1. 定義 LD_LIBRARY_PATH 於 環境變數中,將 Share Library 的所有可能路徑都設上去
    # setenv LD_LIBRARY_PATH /path/to/share/library:$LD_LIBRARY_PATH

  2. 以 Root 身份執行 /etc/rc.d/ldconfig restart
    # /etc/rc.d/ldconfig restart

  3. 打完收工


2010年4月21日 星期三

感動的片段

有一種感動 只能放在心裡 不能用言語表達
那是當你老了坐在庭院的躺椅上 吹著徐徐微風時 會不自禁發出微笑的片段

老伴看著你問「什麼事這麼開心?」
你只回說「沒事,只是想到以前的往事」就無法繼續說明

因為你無法說明 也不願用言語去說明
深怕以言語的形式出現時 會破壞了那形而上的純淨的感動
只願像個拿著棒棒糖的小朋友 獨自享受


2010年4月13日 星期二

MySQL 設定 Replication (Master - Slave)

文章出自 johnpupu

MySQL 設定寫入 Master 後, 自動 Replication 到 Slave 去, 運作基本原理是:

INSERT/UPDATE/DELETE 語法, 自動寫入 Master 的 binlog file.
由 GRANT REPLICATION 授權的帳號, 自動將 SQL 語法 repl 到 Slave 的 DB 執行.
因而完成 Replication 的動作.

Master

1. 複制 my.cnf

甲、#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf


2. 修改my.cnf

甲、server-id = 1

乙、log-bin=mysql-bin

丙、expire-logs-days = 7

丁、max_binlog_size = 268435456

戊、# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1

3. # mysql -u root -p # 進入 mysql

甲、# 先假設 帳號 repl, 密碼 repl_pass, 此步驟是 設定 repl 的帳號/密碼,
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass';
# 格式:
mysql > GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass';
# (Replace with a real password!)

乙、# 先讓 DB 不要再寫資料進去
mysql> FLUSH TABLES WITH READ LOCK;

丙、# 這邊資料都要記好, 等一下設定 Slave 要用
mysql> SHOW MASTER STATUS;

+----------------------+------------+------------------+----------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+------------+------------------+----------------------+
| mysql-bin.000014 | 232 | | |
+----------------------+------------+------------------+----------------------+


4. # 離開, 準備倒資料
mysql> quit

5. # 倒資料
cp –Rp /var/db/mysql /mnt/nas

6. # dump 完資料後, 進去 mysql 解除唯讀
mysql> UNLOCK TABLES;





Slave

7. 複制 my.cnf

甲、#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf


8. 修改my.cnf

甲、server-id = 2 # server-id 不能與其它機器相同

乙、log-bin=mysql-bin

丙、expire-logs-days = 7

丁、max_binlog_size = 268435456

戊、# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1

9. 複制mysql 資料夾過來

甲、# mv /var/db/mysql /var/db/mysql.bak

乙、# cp -Rp /mnt/nas/mysql /var/db/mysql

10. 設定slave

甲、mysql> CHANGE MASTER TO
MASTER_HOST='MASTER_HOSTNAME',
MASTER_USER='repl',
MASTER_PASSWORD='repl_pass',
MASTER_LOG_FILE='mysql-bin.000014',
MASTER_LOG_POS=232;
# 這邊就要用到之前 Master 抄下來的值

乙、# 這樣子就會開始 Replication 了, 會將 LOG_POS 之後新的資料開始 sync 回來
mysql> START SLAVE;

丙、# 檢查一下設定
mysql> show master status;



丁、# 檢查一下設定, 看是不是有異常狀況
mysql> show slave status;


測試

11. 在 master: mysql> create database test2;

12. 在 slave: mysql> show database; # 應該會看到 test2


2010年2月23日 星期二

不願是你的煩惱

(衛視'愛情白皮書'主題曲)

長長的這條街 我走了好幾遍
多希望只是錯覺
你又忘了與我還有約

從認識到瞭解 從沉默到拒絕
還需要多少時間
我們才有勇氣面對

愛得多深 你知道就好
愛得多辛苦我記得就好
所有感情的煎熬
全讓我苦 讓我承受
你可以忘掉
我不願是你的煩惱

長長的這條街 我走了好幾邊
多希望只是錯覺
我知道我已經忽略


2009年12月29日 星期二

Linux 找不到 Library 解決方法

Library 安裝時以 --prefix 指定的安裝路徑若不是系統預設 Library 路徑時,可能會出現以下訊息:

error while loading shared libraries: libXXX.Y.Z: cannot open shared object file: No such file or directory


此時只需要將安裝時 --prefix 所指定之路徑加入 /etc/ld.so.conf 中,並執行以下指令即可令系統連結此路徑下的 Library:

#ldconfig -v


註:[-v] 參數會輸出連結了哪些 Library。


Linux BASH 設定

下載 bash-completion:
http://bash-completion.alioth.debian.org/

執行指令:

#./configure --prefix=/
#make install





開始設定 BASH:

/etc/bashrc 加入以下設定:
顏色代碼:30 黑, 31 紅, 32 綠, 33 黃, 34 藍, 35 紫, 36 淺藍, 37 白, 01 高亮度

alias ll='ls -alh'

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=02;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:"

PS1="[\e[31;40m\u\e[32;40m@\h \w\e[0m]\\$ "

. /etc/bash_completion



/etc/inputrc 加入以下設定:

"\e[A": history-search-backward
"\e[B": history-search-forward





不喜歡 root 被限制複製、移動、刪除行為的話,修改 /root/.bashrc
將以下三行註解掉

#alias rm='rm -i'
#alias cp='cp -i'
#alias mv='mv -i'


CentOS 5.4 安裝 boost 1.4.1 筆記

/*編譯環境準備*/

安裝 ICU for Regex Unicode support

#yum install icu-3.6-5.11.4
#yum install libicu-devel-3.6-5.11.4
#yum install libicu-3.6-5.11.4



Export 環境變數

#export ICU_PATH=/usr
#export ICU_LINK=-L/usr/lib64
#export EXPAT_INCLUDE=/usr/include ;
#export EXPAT_LIBPATH=/usr/lib64 ;



安裝 MPI for Graph MPI support

#yum install openmpi-libs-1.3.2-2.el5
#yum install openmpi-devel-1.3.2-2.el5
#yum install openmpi-1.3.2-2.el5
#yum install mpi-selector-1.0.2-1.el5
#yum install openmpi-devel-1.3.2-2.el5



安裝 Expat for XML 需求

#yum install expat-devel-1.95.8-8.3.el5_4.2
#yum install expat-1.95.8-8.3.el5_4.2





/*開始編譯*/
解壓縮 boost,並切換至 boost 目錄。

執行指令:

#./bootstrap.sh --prefix=/usr



修改 project-config.jam:

using mpi ;



執行指令:

#./bjam install >build_log 2>&1


編譯輸出結果將會紀錄於 build_log,編譯期間可使用 tail -f build_log 觀察編譯狀態。


2009年12月17日 星期四

深深 深深 深深的無力感

深深 深深 深深的無力感
以一種存在但卻不具任何體裁的方式襲來

身體 漸漸 漸漸 漸漸的向下沉
心跳聲如遠去的救護車般發出變調的顫音

寒冬披上黑夜的霧 將熱情澆滅化為槁灰
不再 從此不再滾燙


2009年12月16日 星期三

愛有感

在你的身邊就是幸福,有你的地方就是家。


2009年11月27日 星期五

詩意的愛

Maru:
至少..我聽得到你,看得到你,你看得到我的訊息..
那麼這樣的思念,也就不是那麼地折磨了..


Firch:
而我 又怎能在你手中劃下一道撕裂的傷口
為此 我高舉起架上鏽蝕的長茅 毫不猶豫刺向自身胸膛
讓渤渤的鮮血洗滌這荒誕罪孽
以永恆包裹滌淨的心 為你任性的愛而臣服