停止 MySQL 服務
#/etc/init.d/mysql stop
使用以下指令啟動 MySQL 服務
# mysqld_safe --skip-grant-tables &
# mysql mysql
進入 MySQL 的命令提示列後:
UPDATE user SET password=password('new password') where user='root';
FLUSH PRIVILEGES;
2008年11月28日 星期五
2008年11月25日 星期二
UNIX系統中標準輸出入、錯誤的轉向
UNIX系統中,每個 process 有三個特殊的檔案裝置(標準輸入、標準輸出、標準錯誤輸出):
1.標準輸入(standard input),代碼為 0 ,使用 < 或 <<。
2.標準輸出(standard output),代碼為 1 ,使用 > 或 >>。
3.標準錯誤輸出(standard error),代碼為 2 ,使用 2> 或 2>>。
平時在shell中執行指令若不指定標準輸入、標準輸出、標準錯誤輸出,這三個平常是接受終端機(terminal)的輸入及顯示出去,但是可以使用">"和"<"來進行輸出入轉向至一般的檔案或"pipe"來取代這些標準輸出入設備。
我們可將在shell中執行指令視為
範例
command < file
將程式中須要由終端機輸入資料,改由編入檔案中,利用轉向輸入。command > file
將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >> file
將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,結果將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >! file
忽略系統警告訊息,強迫將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>! file
忽略系統警告訊息,強迫將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >& file
command > file 2>&1
將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>& file
將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >&! file
忽略系統警告訊息,強迫將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>&! file
忽略系統警告訊息,強迫將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command 1> file 2>error
將結果存入file,錯誤輸出存入error
1.標準輸入(standard input),代碼為 0 ,使用 < 或 <<。
2.標準輸出(standard output),代碼為 1 ,使用 > 或 >>。
3.標準錯誤輸出(standard error),代碼為 2 ,使用 2> 或 2>>。
平時在shell中執行指令若不指定標準輸入、標準輸出、標準錯誤輸出,這三個平常是接受終端機(terminal)的輸入及顯示出去,但是可以使用">"和"<"來進行輸出入轉向至一般的檔案或"pipe"來取代這些標準輸出入設備。
我們可將在shell中執行指令視為
command | > >! 1> 1>! >> >>! 2> 2>! 2>> 2>>! >& >&! < << | 裝置或檔案 |
範例
command < file
將程式中須要由終端機輸入資料,改由編入檔案中,利用轉向輸入。command > file
將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >> file
將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,結果將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >! file
忽略系統警告訊息,強迫將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>! file
忽略系統警告訊息,強迫將一個指令的輸出結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >& file
command > file 2>&1
將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>& file
將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command >&! file
忽略系統警告訊息,強迫將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,則原檔案內容將被覆蓋。
command >>&! file
忽略系統警告訊息,強迫將一個指令的輸出連錯誤結果轉向到一個檔案,如果檔案已經存在,將會附加到檔案的末端。若檔案不存在則將結果存入檔案中。
command 1> file 2>error
將結果存入file,錯誤輸出存入error
2008年11月19日 星期三
PHP 檔案操作筆記
PHP 中 FILE POINT 的值由 0 開始,也就是第一個字元位置是 0,所以如果要讀取檔案中第 10 個字元則:
fseek($fp, 9);
fread($fp, 1);
fseek($fp, 9);
fread($fp, 1);
在PHP function 中使用 FILE POINT若不希望 function 結束後指標的值和傳入時不同則必須事先記錄 FILE POINT 的值或是在function 中設定,參考以下範例
//指定檔案中的某個位置開始讀取某一長度
function ftell_read($fp, $ftell, $length=1)
{
//必須將原來 $fp 指標的位置記錄下來,最後再指回去,否則當函數結束後 $fp 指標位置會是最後的值
$old_ftell = ftell($fp);
fseek($fp, $ftell);
$o = fread($fp, $length);
fseek($fp, $old_ftell);
return $o;
}
可遠端查詢與管理Windows系統的工具-PsTools
Winternals Software 這家公司於 2006 年 7 月被 Microsoft 收購,Winternals 販售的是商用軟體,但這家公司的創始人 Mark Russinovich 與 Bryce Cogswell 還擁有另一家名為 Sysinternals 的公司。Sysinternals 發佈過許多免費軟體工具,其中有些免費軟體應用程式後來成為 Winternals Administrator's Pak 中的元件,其中一個 Sysinternals 程式庫工具就是 PsTools 組合。
Mark 採取 UNIX 處理序程式 -- ps,為這些工具命名。內建的 Windows命令列公用程式,也能執行與PsTools工具的一些功能,不過主要差別在於 PsTools 可供本機或遠端使用,從遠端執行這些工具幾乎跟從本機執行一樣簡單。
PsTools 中只有應用程式而沒有安裝程式。直接將這些應用程式放入已定義路徑的資料夾中,就可以開始使用!
PsTools內總共包含了12種工具:
Mark 採取 UNIX 處理序程式 -- ps,為這些工具命名。內建的 Windows命令列公用程式,也能執行與PsTools工具的一些功能,不過主要差別在於 PsTools 可供本機或遠端使用,從遠端執行這些工具幾乎跟從本機執行一樣簡單。
PsTools 中只有應用程式而沒有安裝程式。直接將這些應用程式放入已定義路徑的資料夾中,就可以開始使用!
PsTools內總共包含了12種工具:
- PsExec:執行遠端電腦上的指令
- PsFile:查詢檔案資詢
- PsGetSid:查詢SID
- PsInfo:查詢硬體資訊與開機時間
- PsKill:終止特定處理程序
- PsList:查詢系統程序資訊
- PsLoggedOn:查詢登入狀態
- PsLogList:查詢特定事件記錄
- PsPasswd:更改使用者帳號與密碼
- PsService:檢視和設定系統服務
- PsShutdown:強化關機功能
- PsSuspend:暫停執行中的特定程序
下載軟體 http://microsoft.com/technet/sysinternals/utilities/pstools.mspx
參考文件
http://technet.microsoft.com/zh-tw/sysinternals/bb896649.aspx
http://technet.microsoft.com/zh-tw/magazine/cc162490.aspx
2008年11月17日 星期一
MySQL SQL 子查詢應用
MySQL新版本加入子查詢功能後,以往很難處理的SQL,變得簡單容易多了
以下是朋友曾經提出的問題:
解法以 MySQL 5為例
問題 1.Answer:
SELECT substring( b.id, 1, locate( '%', b.id ) -1 ) AS b1, substring( b.id, locate( '%', b.id ) ) AS b2, name AS b3 FROM b
問題 2.Answer:
SELECT *
FROM a, (SELECT substring( b.id, 1, locate( '%', b.id ) -1 ) AS b1, substring( b.id, locate( '%', b.id )) AS b2, name AS b3 FROM b ) AS bb
WHERE a.id = bb.b1
以下是朋友曾經提出的問題:
資料表 b 裡面,有一個主鍵 id,內容是問題 2.兩者該如何作 Join?
id name
------------------------------
11111%01 A
11111%02 B
11111%03 C
22222%01 D
22222%02 E (id 規則是以 % 作為分隔成兩個數字
與另外一個資料表 Join,資料表 a 的主索引鍵是 11111 與 22222 ...
問題 1.如何將 b.id 這個欄位拆成兩個欄位
id1 id2 name
------------------------------
11111 %01 a
.....
解法以 MySQL 5為例
問題 1.Answer:
SELECT substring( b.id, 1, locate( '%', b.id ) -1 ) AS b1, substring( b.id, locate( '%', b.id ) ) AS b2, name AS b3 FROM b
問題 2.Answer:
SELECT *
FROM a, (SELECT substring( b.id, 1, locate( '%', b.id ) -1 ) AS b1, substring( b.id, locate( '%', b.id )) AS b2, name AS b3 FROM b ) AS bb
WHERE a.id = bb.b1
訂閱:
文章 (Atom)