最近在高雄面試的時候,被問到的資料庫問題,什麼是 left join,out join,inner join,其實這些都是寫基本 SQL 語法需要知道的,當然我比較少用到 out join,不過還是要知道一下比較好喔,底下來說明一下這些,整理一些心得
Linux Find 指令用法教學
[Linux] 利用 awk 或 perl command line 找出 passwd id 大於1000 的帳號
其實還蠻簡單的,只是想紀錄一下,利用 awk 或者是 perl command line 找出非系統產生的帳號 perl:
#
# perl 寫法
#
perl -an -F: -e 'if ($F[2] >= 1000) { print $F[0],"\n"; }' passwdawk:#
# awk 寫法
#
awk -F ":" '($3 >= 1000) { printf $1 "\n"}' /etc/passwd[MySQL] 實做 MySQL Master-Master Replication 同步
今天無聊實做了 MySQL 資料庫同步化,那可以先看看 MySQL Master Slave Replication,中文網站可以上 google 查詢或者是看看這一篇:MySQL 設定 Replication (Master – Slave),基本上設定還蠻容易的,如果會 Master 同步到 Slave 的話,那 MySQL Master-Master 只是在用相同的方法在做一遍,如果不懂 MMM 的可以先參考這一篇:MySQL Master-Master Replication Manager(1) – 簡介,這篇寫的很清楚,今天看了文章,我實做起來,遇到一些問題,其實還蠻奇怪的,所以底下就來紀錄一下步驟,順便也說明一下。 實做兩台 Ubuntu 機器: db1:192.168.1.1 db2:192.168.1.2 先設定 db1: 目前我都是在 Ubuntu 7.10 底下實做的,那基本上只要有支援 MySQL 的 Linux 或者 FreeBSD 機器都可以實做這個方法: 步驟一:先修改 my.cnf 這個檔案: FreeBSD 的話在:/var/db/mysql/my.cnf Ubuntu:/etc/mysql/my.cnf 有的版本是在 /etc/my.cnf 所以不太一定,請依照自己的作業系統 修改:
# # bind-address 請 mark 起來,因為我們必須讓 MySQL Listen 各個不同的 IP Address #bind-address = 127.0.0.1 # # server id 請記得每台機器都設定不同喔 # server-id = 1 log_bin = /var/log/mysql/mysql-bin.log[Read More]
[FreeBSD]利用 DenyHosts 軟體擋掉暴力破解 ssh 的使用者
不管是架設好 Linux 跟 FreeBSD 通常都會有國外的 hacker 來 try 機器的 SSH 帳號密碼,我想這是很正常的,網路上也提供很多方法來分析 Log 檔,FreeBSD:/var/log/auth.log,我可以分析檔案,然後再利用 firewall like ipfw or pf 的方式來達到,或者是利用寫到 /etc/hosts.deny 來達到 Block 的功能,網路上有很多工具可以用,例如 DenyHosts,sshguard 或者是 sshit,可以參考我之前寫的一篇利用 sshit 來達到阻擋 ssh 使用者,然而今天來介紹一下 DenyHosts 再 FreeBSD 底下如何設定,還蠻方便的。 首先利用 ports 安裝,DenyHosts 是利用 python 的程式語言寫出來的:
Port: denyhosts-2.6_2 Path: /usr/ports/security/denyhosts Info: Script to thwart ssh attacks Maint: janos.mohacsi@bsd.hu B-deps: python25-2.5.2_3 R-deps: python25-2.5.2_3 WWW: http://denyhosts.sourceforge.net/ /* 利用 ports 安裝 */ cd /usr/ports/security/denyhosts; make install clean[Read More]
[Linux&FreeBSD] 解决 umount時出現的 “Device is busy”
在 Linux 系列 OS 安裝好之後,都會有支援一個 fuser 這一個指令,那有時候在 linux 底下 mount 隨身碟,或者是其他硬體的時候,有時候沒辦法讓您移除,會出現:『Device is busy』,那這個訊息是在保護確保你的資料有儲存到該裝置,有時候如果沒有正確移除,會造成資料遺失,或者是資料不完整,那基本上裝上任何一套 Linux 作業系統,都會有支援了,所以不必在另外安裝,那 FreeBSD 那就要在安裝 /usr/ports/sysutils/fuser 這一個 tool 這樣才會有喔 安裝:『FreeBSD』
cd /usr/ports/sysutils/fuser make install clean那使用方法: for FreeBSD
# fuser -m /var/log/maillog /var/log/maillog: 513wa # 加上 -u 參數 # fuser -mu /var/log/maillog /var/log/maillog: 513wa(root)
2008.11.28 update 另外解法: 可以使用 fstat -f /home 來觀看有哪些 process access /home
[Read More][PHP] 設定 session 的過期時間 & 暫存檔過多
目前在 PHP 網站裡面,大部分的網站都是利用 session 的技術來達到驗證使用者帳號密碼,那 PHP 預設 SESSION 是把他寫入檔案,那 Linux 底下會放在 /tmp 裡面,你會發現網站越多人,裡面檔案就會越多,一串亂碼的檔案 sess_*,那底下是可以寫在程式裡面設定多久可以刪除這些過期的 Session 檔案 底下轉貼自:Cross-Browser Session Starter
[Read More]
[Ubuntu & java] java JDBC and MySQL
最近開始要摸 java 了,目前大概先實做 java with JDBC 連接 MySQL,所以在 JavaWorld@TW 這裡找了一些相關的文件,目前我在 Linux 底下實做,還沒找到一套很適合的 IDE Tool 來撰寫程式碼,大家好像都很推 netbeans 跟 eclipse,不過我目前還是使用 PSPad 來撰寫 java 程式碼,然後透過 FTP 的方式編輯,這不是重點,重點是要透過 jdbc 來連接 MySQL,目前是在 Ubuntu 7.04 這一版本上面實做,底下是實做方法: 1. 首先先安裝 deb 檔案:透過 apt-get 的方式
# # 首先尋找 java lib with mysql apt-get install libmysql-java2. 安裝好之後尋找 jar 檔案,加入到 class path 裡面
# # 首先 echo $CLASSPAT # # java mysql jar 檔案如下 /usr/share/java/mysql.jar # 加入 CLASSPATH,修改 /etc/bash.bashrc export CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar # 然後在 source /etc/bash.bashrc[Read More]
[PHP] 好用的留言板 驗證碼 功能
這算是大家都知道的技術了吧,因為說實在的,留言板惡意灌水實在是太容易了,就算是檔檔 referer 也是沒用,因為表頭可以自己偽造,那最好的方法就是用 PHP 驗證碼的機制,這個機制利用 GD 縮圖的部份,然後再把驗證數字存放在 SESSION 裡面,不過 PHPBB 的作法是存在 database 資料庫裡面進行比對,然後在 delete 該比資料,畢竟每個連線都有自己的 ssid 的值,所以這樣進行比對,我想是不錯的方法,也可以用在很多地方,那底下是我去 Jax 的工作紀錄 看到的一篇:PHP 驗證碼,拿過來筆記一下。 首先先去 Windows 底下的 Fonts 資料夾,選一個字型吧,因為裡面會用到喔,不然底下這一段 code 會用到
imagettftext($im, 20, 0, 25, 35, $Color,"arial.ttf",$verification__session); /* imagettftext (int im, int size, int angle, int x, int y, int col, string fontfile, string text) im 圖片物件 size 文字大小 angle 0度將會由左到右讀取文字,而更高的值表示逆時鐘旋轉 x y 文字起始座標 col 顏色物件 fontfile 字形路徑,為主機實體目錄的絕對路徑, 可自行設定想要的字型 text 寫入的文字字串 */[Read More]
[AJAX] google map 的應用~
嗯嗯,我自己的 blog 有在寫美食,就會有美食地點,當然我覺得把 google map api 整合進來,是不錯的方法,其實 google map 也提供了只要輸入地址,就可以直接幫妳對應經度跟緯度的值,這樣就可以利用 ajax 的技術把資料庫裡面的地址都加上 google map 了,至少之前 高雄線上 是這樣加上所有店家資訊的地址 google map,其實要使用 google map 相當容易,其實妳只要按照下面步驟就可以了:
- Sign up for a Google Maps API key.
- Read the Maps API Concepts.
- Check out some Maps API Examples.
- Read the Maps API Reference.

