2011年12月29日 星期四

WinXP灌Apache2+PHP+MySQL5


安裝順序為 Apache -> PHP -> MySQL
開啟Apache安裝路徑下的 conf/httpd.conf檔
修改 DocumentRoot









修改 Directory















修改 DirectoryIndex








加入以下







2011年11月13日 星期日

ASP 連 MySQL


1.需下載和安裝 MySQL 的 ODBC,安裝好後,可至系統管理工具->ODBC內看是否有安裝好

2.ASP 程式:
sConnection = "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=mysql_ip; DATABASE=databasename; UID=password;PASSWORD=password; OPTION=3"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(sConnection)


sSQL = "SELECT * FROM ci, rr, fp, fm " _
& "WHERE rr.record_time between CURDATE() and CURDATE()+INTERVAL 1 DAY AND rr.card_id > 0 AND rr.eventcode = 0 AND rr.card_id = ci.card_id " _
& "AND rr.project_id = fp.project_id AND fp.factory_id = fm.factory_id AND rr.record_method = 1 "

Set objRS=objConn.Execute(sSQL)

While Not objRS.EOF
Response.write( objRS.Fields("card_number"))
objRS.MoveNext
Wend

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

2011年11月12日 星期六

用cmd指令啟動、關閉MySQL

OS:windows xp

以下方法和在服務上執行是相同的。

看MySQL是否還在啟動
開始->執行->cmd
#> net start

啟動MySQL
#> net start mysql

關閉MySQL
#> net stop mysql


2011年11月7日 星期一

在insert時,系統自動將現在的時間寫入


新一個 datetime 的欄位,在預設值或繫結的地方打 getdate() 即可。















insert 的語法寫 insert into tablename(a) values (2); 即可。
結果如下:






2011年11月5日 星期六

讀取 新聞的RSS (xml)

環境:PHP5 + Apache2.2

一開始在 simplexml_load_string直接帶URL,在自已的機器是可以跑的,但放到另一台電腦會出現simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity 的錯誤訊息,所以改成用cURL的方式將xml先抓下來,再執行,就OK了。

//新聞的RSS -- 民視
define("RSS_URL","http://news.ftv.com.tw/hinetnews/ftvnews.xml");
 //新聞 RSS 的標題的標籤
define("RSS_TITLE","Title");
//新聞 RSS 的內容的標籤                                   

define("RSS_DESCRIPTION","Description");
//新聞 RSS 的圖檔的標籤                   
define("RSS_IMAGE","Image");                                    



//初始化 PHP/cURL session
$ch = curl_init();
//定義目標網站
curl_setopt($ch, CURLOPT_URL, RSS_URL);
//以字串的方式送回來
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//不等待超過60的時間
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//執行cURL指令(將目標網頁的內容放至字串
 $output = curl_exec($ch);
//關閉PHP/cURL session
curl_close($ch);
 
$rss =  simplexml_load_string($output);
//讀取XML的內容
foreach ($rss as $key0 => $value) {
foreach($value as $key => $value2){
switch($key){
case RSS_TITLE: //標題
$var_value['v_title'] = $value2;
break;
case RSS_DESCRIPTION:   //內容
$var_value['v_content'] = $value2;
break;
case Image: //圖檔
$var_value['v_img'] = $value2;
break;
}                  
}

}

2011年10月31日 星期一

Access的類似Case的用法


SELECT
IIf(DataClockPlay.PlayType=0,"flash", IIf(DataClockPlay.PlayType=1,"web", IIf(DataClockPlay.PlayType=2,"movie",IIf(DataClockPlay.PlayType=3,"aa",
IIf(DataClockPlay.PlayType=4,"test",IIf(DataClockPlay.PlayType=5,"news",
IIf(DataClockPlay.PlayType=6,"ff")))))))

FROM DataClockPlay;

Access 沒有Case,所以可用IIF

2011年10月28日 星期五

讓網頁在X秒後,轉至另一頁

將下面那句加在<head>  </head>中
<meta http-equiv="refresh" content="x;url=test_new.html>
x:指多少秒轉走
url:填要轉去的那頁網址

2011年10月5日 星期三

2011年9月28日 星期三

顯示資料庫的 data 和 transaction log 的空間資訊

SQL Server 2008
資料庫上按右鍵->報表->標準報表->磁碟使用量


















記錄有誰登入

版本:SQL Server 2008
記錄有誰登入


2011年9月22日 星期四

SQL Server ISNULL 在Oracle 的語法

Oracle 沒有 ISNULL這個語法,可用 NVL,NVL可用來判斷 NULL 和空字串。
EX: select nvl(col, 'is_null');

2011年9月21日 星期三

excel 2007開啟 utf8 的 csv 檔


先開啟一個空間的excel


選擇 csv 檔


 選擇 utf8 編碼


選擇分隔符號

查詢目前資料庫所使用的字元集

select userenv('language') from  dual
=>TRADITIONAL CHINESE_TAIWAN.AL32UTF8

2011年9月14日 星期三

2011年9月13日 星期二

oracle 的 top 功能

SQL Server 的 Top,在 Oracle 要用 rownum

EX:選取前10筆資料
SQL> select * from user.user_objects where rownum <= 10;


EX:選取前10筆資料,有排序的(要先做排序)
SQL> select * from (select * from  user.user_objects   order by columnname ) where rownum < 11 

2011年7月19日 星期二

新增繼承的Form

 Project->Add Windows Form
選擇 Inherited Form

選擇要繼承的Form


2011年7月18日 星期一

查資料庫的定序

select DATABASEPROPERTYEX('DB_NAME','collation')

看安裝的java版本

開始->執行->cmd

輸入:java -version

2011年7月16日 星期六

2011年7月3日 星期日

讓程式執行時,視窗為最大化

將 Window Form 的 WindowState 屬性 設為 Maximized

2011年6月24日 星期五

MySQL Slave 出現Waiting to reconnect after a failed master event read

設定好 MySQL 的 Replication後,在 Slave 執行 show slave status;
看到 Slave_IO_State 出現 Waiting to reconnect after a failed master event read。
查詢到MySQL的 error log ,可看到
[Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.xxx' at postion xxx
[ERROR] Error reading packet from server: Access denied; you need the REPLICATION SLAVE privilege for this operation ( server_errno=1227)

解決方式:
給執行Replication的 user  REPLICATION SLAVE 的權限即可。 

2011年5月11日 星期三

開啟MySQL,出現Default storage engine (InnoDB) is not available

狀況描述:在 windows 安裝新的 MySQL,將另一台的my.ini copy 到這台後,重啟 MySQL,出現Default storage engine (InnoDB) is not available,且無法開啟 MySQL

解決方式:將 ib_logfile0、ib_logfile1、ibdata1刪除後,開啟 MySQL 即可。

PS.這是在 MySQL 還無資料的處理方式,若已上線的 DB,不知是否會有 lost data 等的其它問題出現。

2011年4月26日 星期二

drop role時發生資料庫主體在資料庫中擁有 結構描述 且無法卸除

版本:SQL Server 2008 R2
執行以下語法:

use test
go

DROP ROLE [test_role]
go

發生:

訊息 15138,層級 16,狀態 1,行 1
資料庫主體在資料庫中擁有 結構描述 且無法卸除。

解決方式:
將資料庫->安全性->結構描述 的 擁有者為 test_role的結構描述改成其它擁有者即可。



2011年4月25日 星期一

將目前的工作丟到背景中暫停
ctrl + z

將背景工作拿到目前的工作
fg

資料來源:http://linux.vbird.org/linux_basic/0440processcontrol.php#ctrl_z

2011年4月22日 星期五

清除dns cache

開始->執行->打cmd

C:\Documents and Settings\aa>ipconfig /flushdns

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.

C:\Documents and Settings\aa>

2011年4月18日 星期一

新增、移除 指定user用固定的tempdb

//參數1: login_name (or LG)、application_name (or AP)
//參數2: login帳號
//參數3: group (or GR)、database (or DB)
//參數4: tempdb name


//指定user用固定的tempdb
exec master..sp_tempdb bind, 'lg','testacc', 'DB', 'tempdb_test'

//移除指定user用固定的tempdb
exec master..sp_tempdb unbind, 'lg','testacc', 'DB', 'tempdb_test'

參考資料:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sprocs/html/sprocs/sprocs208.htm

2011年4月13日 星期三

查目前此session登入的user name 和user id

select name, suid from master..syslogins where suid= suser_id();

2011年4月7日 星期四

記錄某段時間InnoDB的狀況

/*
開啟監控,只要create table後就代表開啟監控了,建立的 table 與 InnoDB Monitor 無任何關係
若沒將table drop掉,就關閉 mysql,開啟 mysql 後,若要再監控,需先將 table drop 後,再 create table
開啟後,會將log記錄在 err log 裡,如:xx.com.tw.err
*/
/* 記錄標準的 InnoDB Monitor,等於 show engine inndb status 指令,執行週期15秒 */
create table mysql.innodb_monitor(a int) engine=innodb;
/* 會顯示更多的 lock 訊息,執行週期15秒 */
create table mysql.innodb_lock_monitor(a int) engine=innodb;
/* 獲得 InnoDB 內部數據字典的信息 */
create table mysql.innodb_table_monitor(a int) engine=innodb;
/* 顯示在現有表空間內所建立的文件段列表以及可以分配數據結構的有效表空間
若在 my.cnf 中有設定innodb_file_per_table为每个表使用独立的表空间的話 .
這秀的訊息就不是正確的 */
create table mysql.innodb_tablespace_monitor(a int) engine=innodb;

/* 關閉監控,drop table後代表關閉監控 */
DROP TABLE mysql.innodb_monitor;
DROP TABLE mysql.innodb_lock_monitor;
DROP TABLE mysql.innodb_table_monitor;
DROP TABLE mysql.innodb_tablespace_monitor;

看目前的innodb狀況

mysql> SHOW ENGINE INNODB STATUS;

2011年4月6日 星期三

重新產生新的MySQL slow query LOG

以下語法先將slow query log改名,再重新產生新的log
shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old
shell> mysqladmin -uxxx -p flush-logs

2011年3月17日 星期四

2011年2月20日 星期日

查詢SQL Server版本

語法為:
SELECT SERVERPROPERTY('productversion'),SERVERPROPERTY ('productlevel'),SERVERPROPERTY ('edition')

9.00.4035.00 SP3 Enterprise Edition (64-bit)
=>指 SQL Server 2005 Service Pack 3

資料來源:http://support.microsoft.com/kb/321185/zh-tw


select @@version

2011年2月8日 星期二

du 依大小排序

OS:FreeBsd

du -h | sort -gr



du | sort -gr

MySQL Error Code: 2006 MySQL server has gone away

修改 table時,發生Error
alter table tabletest add `coltest` CHAR(1) NULL

Error Code: 2006
MySQL server has gone away

解決方式:
加大 max_allowed_packet 參數即可。

2011年1月30日 星期日

將下拉式選單預設為選取

$("#下拉式選單id option[value=預設的值]").attr("selected",true);
EX:
版本:jquery 1.7.2
javascript:
$("#byear option[value=2011]").attr("selected",true);
============或======================
$("#下拉式選單id").attr("value","預設的值");
EX:
版本:jquery 1.4.3

javascript:
$("#byear").attr("value","2011");

html:
<select name="byear" id="byear">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>


參考資料:http://www.mokamap.com/?p=18

2011年1月29日 星期六

MySQL 找文字第一個出現的位置

EX:
找出 1-22 的 - 位置
locate('-',欄位) => 2

MySQL 取代某字

EX:
要將 12-22 變成 12.22

語法為:
replace(欄位,'-','.')

MySQL 把字串當數字排序

EX:
1, 11, 2, 22 要排序成 1, 2, 11, 22

語法為:
order by cast(欄位 as unsigned) asc;

解決 php 連 MySQL 出現亂碼問題

MySQL Server 為utf8
MySQL Table 為 big5

此時用PHP連MySQL,發現會出現亂碼
解決方式 :在 PHP 連資料庫的地方多加 mysql_query("SET NAMES 'big5'");
ex:

$conn = mysql_connect($server,$db_user,$db_pass);
mysql_query("SET NAMES 'big5'");

if (!$conn){
die('Could not connect DataBase: '.mysql_error());
mysql_close($conn);
exit;
}

2011年1月25日 星期二

使用 IE 下載 excel xlsx 檔案變成 zip 檔

web server為apaceh

用php寫下載 副檔名為xlsx時,用 IE 執行會變成 zip 檔
$excel_file = "123.xlsx";
header("Location:" . $excel_file);
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=123.xlsx" );

解決方式:
修改apache mime.types 檔案,
在最下面加入:application/vnd.openxmlformats        docx pptx xlsx 即可。

Linux : /etc/mime.types
Windows : ...apache/conf/mime.types (取決於安裝路徑)

需改完後,需重啟Apache

2011年1月23日 星期日

2011年1月13日 星期四

2011年1月10日 星期一

移除MySQL bin-log

移除binlog之前的binlog
PURGE  BINARY  LOGS  TO 'binlog名字';

EX:移除mysql-bin.010前的binlog,會移除mysql-bin.001-mysql-bin.009
mysql> PURGE  BINARY  LOGS  TO 'mysql-bin.010';

移除某個時間點前的binlog
mysql> PURGE  BINARY  LOGS  BEFORE '2008-04-02 22:46:26';

若下以上指令,無法刪除bin-log,檢查mysql-bin.index裡的內容是否和實體檔mysql-bin.xxx相同。若不同可建空的mysql-bin.xxx檔,再執行以上的語法。

2011年1月4日 星期二

用ssh連另一台主機時出現WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

連ssh時出現以下:
ssh> scp xx.bk test@10.10.10.10:/home/test
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
07:16:cd:be:a5:a0:93:9f:5c:3c:55:e6:a8:f1:1e:2b.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for 10.10.10.10 has changed and you have requested strict checking.
Host key verification failed.
lost connection


解決方式:
1.進入家目錄 ex:/home/peijuan
2.vi ~/.ssh/known_hosts
3.將欲連接的主機名稱的 Key 給刪除,如下:
aaa,10.10.10.10 ssh-rsa AAAA.......

2011年1月1日 星期六

查詢有哪些port是listen的

netstat -na

無法連結遠端MySQL

MySQL Server OS 版本:windows xp
MySQL Server 版本:MySQL 5.5.8

從另一台OS要連到MySQL Server時出現 can't get hostname for your address
查詢 Server 的防火牆有開 3306 port,但卻還連不上。
解決方式:
在 my.ini  的 [mysqld] 下加入 skip-name-resolve 重啟MySQL即可。

參考資料:http://bugs.mysql.com/bug.php?id=52923