2010年12月23日 星期四

無法建立store procedure - Error Code 1655

在mysql下
mysql> CREATE PROCEDURE myproc() BEGIN END;

出現:

Error Code: 1655
Cannot create stored routine `myproc`. Check warnings

解決方式:
修改my.cnf的sql-mode(sql-mode="ANSI,TRADITIONAL"),重啟MySQL,即可。

資料來源:http://bugs.mysql.com/bug.php?id=34794

2010年12月22日 星期三

計算某範圍內符合規則的儲存格數量

公式為:=COUNTIF(儲存格範圍,規則),規則不能用 and or ...等

EX:
=COUNTIF(B2:B5,">55") 儲存格的數值大於 55 的儲存格數目

參考資料:http://office.microsoft.com/zh-hk/excel-help/HP005209029.aspx

2010年12月15日 星期三

連至另一台windows主機抓資料

至xx.xx.xx.xx主機的D槽,在開始->執行下
\\xx.xx.xx.xx\d$

2010年12月13日 星期一

出現Lost connection to MySQL server at 'reading initial communication packet'

在其他主機連MySQL皆沒問題,但在 A 主機上下
ssh> mysql -hxx.xx.xx.xx -uxx -pxx
出現
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

查詢MySQL的xx帳號,並無限制可連線的IP。
後查詢 MySQL 的 freeBSD 主機的 /etc/hosts.allow,並無寫A主機的IP,因此將 A 主機的 IP加入 /etc/hosts.allow 內即可。
ALL: xxx.xxx.xxx.xxx

參考來源:http://www.bramschoenmakers.nl/en/node/595

2010年12月8日 星期三

2010年11月27日 星期六

調整innodb log參數,出現錯誤

調整 innodb_log_file_size 時,重啟MySQL,出現

InnoDB: Error: log file /var/db/mysql/ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
101127  0:23:36 [ERROR] Plugin 'InnoDB' init function returned error.
101127  0:23:36 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
在create table 時,發現找不到InnoDB的Engine。
解決方式為:
1. shutdown mysql
2. 將mysql下的ib_logfile0和ib_logfile1刪除
3. 啟動 mysql
mysql會自動建立ib_logfile0和ib_logfile1

2010年11月22日 星期一

mysqldump出現Can't connect to local MySQL server through socket '/tmp/mysql.sock'

出現以下訊息:mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

解決方式:找出mysql.sock的位置,並加入 --socket=mysql.sock的位置

例:
找出mysql.sock位置
ssh>  find / -name 'mysql.sock'
加入mysql.sock
ssh> mysqldump -uroot -p --socket=/usr/local/mysql/mysql.sock  --no-data dbname > dbname_schema.txt 



2010年11月19日 星期五

freebsd上寄mail

echo '信件內容' | mail -s '信件主指' xxx@gmail.com

2010年11月11日 星期四

找出文字檔第幾行到第幾行的資料

p:指print

找 xxx.txt 行數為 6230-6250 的資料
sed -n '6230,6250p'  xxx.txt

2010年11月10日 星期三

讓MySQL Workbench工具可看到系統DB

Edit->Preferences->SQL Editor 將Show Metadata Schemata打勾。


2010年10月16日 星期六

SQL Server Agent 無法刪除作業

版本:SQL Server 2005 SP2
在SQL Server Agent->作業 按右鍵刪除作業時,會出現錯誤訊息:

此為SQL Server在刪除 msdb..sysjobs 資料時,發現它的 FK 的 table 還有資料

解決方式為:
找出要刪除的job_id,並刪除
select job_id,* from msdb..sysmaintplan_subplans  where job_id = 'xxxx'

delete from msdb..sysmaintplan_subplans  where job_id = 'xxxx'

2010年10月13日 星期三

查詢數字開頭的Table Name

版本:SQL Server 2005 SP2

Table 用 []
ex:
select * from testdb.dbo.[123P]

2010年10月11日 星期一

重新產生新的MySQL ERROR LOG

會將原本的error log 檔變成 xxx.err-old 並產生新的檔 xxx.err,此語法並不會寫入bin-log內。
ssh> mysqladmin –u root –p flush-logs

參考網址:http://dev.mysql.com/doc/refman/5.1/en/flush.html

2010年9月19日 星期日

php連sybase資料庫時可寫名稱,不用寫IP

ssh> cd /usr/local/etc
ssh> vi freetds.conf

寫成以下
[sybase_db1]
        host = 10.10.10.1
        port = 4000
        tds version = 5.0
        client charset = utf8

[sybase_db2]
        host = 10.10.10.2
        port = 4000
        tds version = 5.0
        client charset = utf8


這樣php在連sybase資料庫時可寫成
sybase_connect("sybase_db1","帳號","密碼","編碼big5或utf8",'');

2010年9月17日 星期五

用outfile的方式備份所有table資料

table schema需另外備份
MySQL Store Procedure:


DELIMITER $$

DROP PROCEDURE IF EXISTS `DBName`.`sp_u_backupdata` $$
CREATE DEFINER=`peijuan`@`%` PROCEDURE `sp_u_backupdata`()
BEGIN

DECLARE done INT DEFAULT 0;
Declare DBNAME VARCHAR(20);
Declare TABLENAME VARCHAR(20); /* table name */
Declare MD VARCHAR(4);   /* date-mmdd */
Declare out_file VARCHAR(100);
Declare dir VARCHAR(100);
Declare outdir VARCHAR(200);

Declare cur CURSOR FOR
SELECT table_schema, table_name FROM information_schema.`TABLES` where table_schema not in ('information_schema','mysql','test');
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

SELECT DATE_FORMAT(now(),'%m%d') INTO MD;  /* mmdd */

SET dir = concat('/data/mysql_dump/',MD,'/');  /* /data/mysql_dump/mmdd/  */

OPEN cur;

REPEAT
FETCH cur INTO DBNAME,TABLENAME;

IF NOT done THEN

SET out_file = concat(DBNAME,'.',TABLENAME);  /* db.table */

SET outdir = concat(dir,out_file,'.txt'); /* /data/mysql_dump/mmdd/xxx.xxx.txt */

/* out file data */
SET @dyn_sql = concat('select * into outfile''',outdir,'''',
'fields terminated by ''<|&|>''',
'lines terminated by ''<|^|>''',
'from ',out_file);

PREPARE s1 from @dyn_sql;

EXECUTE s1;

END IF;
UNTIL done END REPEAT;

CLOSE cur;

END $$
DELIMITER ;

SH:

#!/bin/sh

WORKDIR='/data/mysql_dump/'`date '+%m%d'`
NOW=`date '+%m%d'`

#若資料夾不存在,則建立資料夾 -p指不出現錯誤訊息 -m770指給770的權限
test -d $WORKDIR || mkdir -p -m770 $WORKDIR

#呼叫store procedure
/usr/local/bin/mysql -uxxx -pxxx -e "CALL DBName.storeprocedure_name()"

cd /data/mysql_dump/

#壓縮資料
tar pzcf $NOW.tar.gz $NOW

#刪除資料
rm -rf $NOW

2010年9月13日 星期一

變更MySQL安裝路徑

FreeBsd:
MySQL版本:5.1

1. 編輯Makefile
vi /usr/ports/databases/mysql51-server/Makefile


CONFIGURE_ARGS= --localstatedir=/var/db/mysql \
                --without-debug \
                --without-readline \
                --without-libedit \
                --with-libwrap \
                --with-low-memory \
                --with-comment='FreeBSD port: ${PKGNAME}' \
                --enable-thread-safe-client
的 
--localstatedir=/var/db/mysql \ 
改成要的路徑
ex:
CONFIGURE_ARGS= --localstatedir=/database/mysql \
                --without-debug \
                --without-readline \
                --without-libedit \
                --with-libwrap \
                --with-low-memory \
                --with-comment='FreeBSD port: ${PKGNAME}' \
                --enable-thread-safe-client
存檔。

2.編輯mysql-server.sh.in
vi /usr/ports/databases/mysql51-server/files/mysql-server.sh.in
: ${mysql_enable="NO"}
: ${mysql_limits="NO"}
: ${mysql_dbdir="/var/db/mysql"}
: ${mysql_args=""}
: ${mysql_dbdir="/var/db/mysql"}
改成要的路徑
ex:
: ${mysql_enable="NO"}
: ${mysql_limits="NO"}
: ${mysql_dbdir="/database/mysql"}
: ${mysql_args=""}
存檔。

3.開始安裝MySQL

2010年9月12日 星期日

將文字檔資料Load回 TABLE

CHARACTER SET:編碼
fields:分隔符號
lines:分行符號

EX:將test.abc.txt的資料Load回 test db下的 abc TABLE
LOAD DATA INFILE '/var/db/mysql/test.abc.txt'
into table test.abc
CHARACTER SET big5
fields terminated by '||'
lines terminated by '<>';

將MySQL TABLE資料產生成文字檔

fields:分隔符號
lines:分行符號


EX:將test db下的 abc TABLE的所有資料,產生成文字檔
select * into outfile '/var/db/mysql/test.abc.txt'
fields terminated by '||'
lines terminated by '<>'
from test.abc

2010年9月10日 星期五

查詢和修改MySQL的動態參數設定

查詢參數
EX:
select @@global.sql_mode;
select @@session.sql_mode;

設定參數
set global XXX

set SESSION XXX
不需重新啟動MySQL

EX:
set global expire_logs_days = 2; //設定bin-log的過期時間為2天

參考資料:
http://mysql2.mirrors-r-us.net/doc/refman/5.1/en/dynamic-system-variables.html
http://mysql2.mirrors-r-us.net/doc/refman/5.1/en/set-option.html

2010年9月1日 星期三

修改InnoDB流水號的建立方式

MySQL版本:5.1
ENGINE版本:InnoDB

發現在insert 資料 unique 欄位發生 duplicate時,雖然資料無新增至 table ,但流水號還是繼續加 1,若不讓流水號在發生 duplicate 時,還繼續往上增加的方式為:
在 my.cnf 加入 innodb_autoinc_lock_mode = 0,預設為1

參考來源:http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_autoinc_lock_mode

2010年8月18日 星期三

找程式在哪個路徑下

例如找 grep 在路徑在哪

ssh>which grep
/bin/grep

可知 grep 在 /bin 下

2010年8月13日 星期五

用ssh copy資料至另一台主機

假設要將 a.txt 從ser1 copy 到 ser2的 /home/test/ 下

ssh> scp a.txt test@10.10.10.10:/home/peijuan
scp 來源檔案 ser2登入帳號@ser2:目的

假設要將 a資料夾下的資料 從ser1 copy 到 ser2的 /home/test/ 下
ssh> scp a/* test@10.10.10.10:/home/peijuan

2010年8月11日 星期三

下rm指令時詢問是否刪除

vi /etc/csh.cshrc

加入
alias rm '/bin/rm -i'

2010年8月10日 星期二

UltraEdit在每行最後加入豆號(,)

EX:
原文
aaaaa
bbbbb
ccccc
變成
aaaaa,
bbbbb,
ccccc

搜尋->取代(或Ctrl+R)
搜尋內容打:^p (^p指換行)
取代成為:,^p

2010年8月2日 星期一

出現unable to load dynamic library php_exif.dll

在windows用排程執行php程式時,出現unable to load dynamic library php_exif.dll
解決方式為:
開啟php.ini (C:\WINDOWS\php.ini)
將extension=php_mbstring.dll移至
extension=php_exif.dll 前即可。

參考資料:http://blog.yam.com/koli09/article/20020227

2010年7月26日 星期一

將USB的檔案格式改成ntfs

開始->控制台->系統管理工具->電腦管理
裝置管理員->磁碟機->USB點兩下

原則->效能最佳化

回到格式化,就有NTFS選項了。

2010年6月10日 星期四

修改密碼

sp_password '登入者的密碼','要改帳號的密碼', '要改的帳號'

ex:修改sa的密碼變成xxx,原sa的密碼是NULL
isql -Stestdb -Usa -P

1> sp_password NULL,'xxx',sa      
2> go
Password correctly set.
(return status = 0)

2010年6月1日 星期二

看目前使用多少lock數

select count(*) from master..syslocks;


sp_monitorconfig "of lock" (此語法還可看到設定)
---------------------------------------------------------------------------------
Name, Num_free,Num_active,Pct_act,Max_Used,Reuse_cnt
'number of locks',249, 1,'0.17',250,0

2010年5月29日 星期六

重新計算資料庫已使用空間

看資料庫已使用空間時(Sybase Central->OS->Database->DB->Segment,發現已使用空間為”負值”,此為計算空間發生錯誤,重新計算空間即可解決。

開啟isql,執行:
dbcc usedextents(dbname,0,1,1)

執行此指令需有sybase_ts_role的權限
Sybase Central->Logins->使用者(右鍵)->Properties->Roles->加上sybase_ts_role

2010年5月21日 星期五

出現has run out of LOCKS錯誤訊息

錯誤訊息:ASE has run out of LOCKS. Re-run your command when there are fewer active users, or contact a user with System Administrator (SA) role to reconfigure ASE with more LOCKS

解決方式:調整number of locks參數即可。
Sybase Central->DB右鍵->Properties->Configuration->number of locks

2010年5月20日 星期四

2010年5月18日 星期二

MySQL開機時讀取my.cnf的順序

我在以下兩個地方都有my.cnf檔

/usr/local/etc/my.cnf
/var/db/mysql/my.cnf

在啟動MySQL時,出現

100518 18:12:02 mysqld_safe WARNING: Found two instances of my.cnf -
/usr/local/etc/my.cnf and
/var/db/mysql/my.cnf
IGNORING /var/db/mysql/my.cnf
100518 18:12:02 mysqld_safe Logging to '/var/db/mysql/test.localhost.com.tw.err'.
100518 18:12:02 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql

由此可知讀my.cnf的順序為
1. /usr/local/etc 
2. /var/db/mysql


在ssh下
/usr/local/bin/mysql --verbose --help

會出現下面讀my.cnf的順序

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf

2010年5月11日 星期二

移動資料夾

將abc資料夾,移至/var/db/mysql下,名字為abc_new
mv abc /var/db/mysql/abc_new

參考資料:http://linux.vbird.org/linux_basic/0220filemanager.php#mv

測試是否可連上某台主機

測試IP為10.16.10.10的這台主機的MySQL服務是否有在服務(MySQL Port用預設的3306)
1.進入ssh
2.telnet 10.16.10.10 3306

參考資料:http://blog.udn.com/luckyhoo/643920

2010年5月6日 星期四

用排程讓系統自動建下個月的table

store procedure  :
DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_u_nextmonth_table`(OUT p char(15))
BEGIN

  Declare MM char(6);
  SELECT DATE_FORMAT(DATE_ADD(now(),INTERVAL 1 MONTH),'%Y%m') INTO MM; /* search next month -- YYYYMM */
  set p = concat('nexttable_',MM); /* 合併字串 */

END $$

DELIMITER ;

===================================================


DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_u_create_nexttable`()
BEGIN

  /* call store procedure */
  CALL sp_u_nextmonth_table(@ym);

    SET @dyn_sql = concat('CREATE TABLE  `testDB`.',@ym,'( `id` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT '''',',
          '`areaid` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT '''',',
          'KEY `idpk` (`id`)',
          ') ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci PACK_KEYS=1' );
     /* select @dyn_sql; */

     PREPARE s1 from @dyn_sql;

     EXECUTE s1;

END $$

DELIMITER ;


crontab : (mysqlcrontab.sh)
/usr/local/bin/mysql -uroot -pxxxx -e "CALL TESTDB.sp_u_create_nexttable()"

2010年5月3日 星期一

sftp上傳時出現無權限

sftp> put *
出現:
Uploading testabc.sh to /home/testacc/testdata/testabc.sh

Couldn't get handle: Permission denied
此表示上傳的資料夾無此人的權限
在目的端下
> ls -al
可看此資料夾的擁有者不是testacc,將此資料夾的擁有者改變即可
chown -R testacc: testacc testdata

改變權限

chmod 755 xxx.sh

參考資料: http://linux.vbird.org/linux_basic/0210filepermission.php#chmod

2010年5月1日 星期六

smarty 出現error

出現錯誤訊息:Fatal error: Smarty error: unable to write to $compile_dir '/home2/lab/member/public_html/template'. Be sure $compile_dir is writable by the web server user. in/home2/lab/member/public_html/class/Smarty/Smarty.class.php on line 1091


此為template此資料夾無寫入和執行權限的關係,只要將此資料夾的權限變成 777 即可。

2010年4月27日 星期二

讓shell script執行MySQL指令

> vi /var/db/process.sh

#呼叫MySQL StoreProcedure

#!/bin/sh
/usr/local/bin/mysql -uroot -prootpass -vvv -e "CALL TESTDB.pr_process_list()" > out.txt

-vvv : 可將訊息輸出到out.txt


usr/local/bin/mysql -uroot -prootpass -vvv < mysqlinputdata.txt > mysqloutputdata.txt
mysql執行mysqlinputdata.txt檔,並將訊息輸出到mysqloutputdata.txt

將processlist的筆數和資料存到資料庫內

DELIMITER $$

DROP PROCEDURE IF EXISTS `TESTDB`.`pr_process_list`$$
CREATE DEFINER=`root`@`%` PROCEDURE  `TESTDB`.`pr_process_list`()
BEGIN
  insert into TESTDB.processcount(num, create_date)
  select COUNT(*) ,now()
  from information_schema.PROCESSLIST;

  insert into TESTDB.processlist(ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, create_date)
  select ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO,now()
  from information_schema.PROCESSLIST;
END $$

DELIMITER ;


呼叫MySQL StoreProcedure
mysql> CALL `TESTDB`.`pr_process_list`

2010年4月20日 星期二

重設root密碼

用root登入,出現Access denied for user 'root'@'localhost'

解決方式:

1.進入ssh
sudo su -

2.停止mysql
> cd /usr/local/etc/rc.d/
> ./mysql-server stop

3啟動mysql
> mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

4.進入mysql
> mysql -u root mysql

5.更新 root 密碼
mysql> update user set password=PASSWORD('XXX') where user='root';
mysql> flush privileges;
mysql> exit;

6.重啟mysql
/usr/local/bin/mysqld_safe &

cd /usr/local/etc/rc.d/
./mysql-server restart

7.測試密碼
mysql -uroot -p
Enter password:

2010年4月15日 星期四

改變檔案擁有者

chown [-R] 帳號名稱 檔案或目錄
chown [-R] 帳號名稱:群組名稱 檔案或目錄
ex:
# chown -R mysql:mysql /var/db/mysql


資料來源:
http://linux.vbird.org/linux_basic/0210filepermission.php#chown

2010年4月14日 星期三

MySQL的index重整

//mysql的update statisic

進ssh sudo -

# mysql -uXXX -p


//testtable指的是table name
mysql>optimize table testtable

列出某個資料庫的所有table

//MySQL5
mysql> SELECT * FROM information_schema.`TABLES`;


show tables from DBNAME;


進入ssh

sudo su -

mysqlshow -uroot -p mysql

Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
+---------------------------+

在ssh下sql語法

進入ssh

sudo su -

ex:找出mysql db 下的select語法
mysql -uroot -p -e "SELECT host, db,user from db" mysql


+------+---------+------+
| host | db      | user |
+------+---------+------+
| %    | test    |      |
| %    | test\_% |      |
+------+---------+------+

查詢MySQL 有多少資料庫

進入ssh

sudo su -


mysqlshow -uroot -ppasswd

+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

修改mysql登入的密碼

mysql>update mysql.user set password=PASSWORD('aaaa') where password = '';

 mysql>flush privileges;

2010年4月12日 星期一

FreeBSD查詢系統裝了哪些軟體

pkg_info

ex:查詢有沒有裝mysql這個關鍵字的套件
pkg_info | grep 'mysql'

FreeBSD查閱系統與核心相關資訊

uname -a

//查os版本
sysctl kern.ostype
=> kern.ostype: FreeBSD

sysctl kern.osrelease
=> 8.3-RELENG_8-20120624-JPSNAP

2010年4月8日 星期四

在FreeBSD中啟動MySQL

shell> sudo su -
shell> cd /usr/local/etc/rc.d/
shell> ./mysql-server start (開始)
shell> ./mysql-server stop (停止)
shell> ./mysql-server restart (重啟)


關閉 mysql 服務
shell> cd /usr/local/bin/
shell> ./mysqladmin shutdown -u -p<輸入密碼>

啟動 mysql 服務
shell> cd /usr/local/bin
shell> ./mysqld_safe &

2010年4月5日 星期一

取得radiobutton的值

javascript:

$("input[name='radiom']").click(function(){
var v = $("input[name='radiom'][@checked]").val();
alert(v);
});

html:
<input name="radiom" type="radio" value="1" checked="checked" />
<input name="radiom" type="radio" value="2" checked="checked" />
<input name="radiom" type="radio" value="3" checked="checked" />

2010年3月31日 星期三

讓文字有外框和底色

在word上輸入文字






格式->框線及網底











修改框線












修改網底













完成










2010年3月22日 星期一

檢查備份檔是否有效


ex:查詢TEST.bak此備份檔是否有效
進入SQL查詢介面輸入
restore VerifyOnly
from disk='D:\test\TEST.bak'

2010年3月20日 星期六

另開視窗

javascript:

function open_w(no){
window.open("new.php?flag=e&detail_id="+no,'','directories=0, height=400, location=0, menubar=0, resizable=1, scrollbars=1, status=0, titlebar=0, toolbar=0, width=500','false');

html:
<a href="" onclick="open_w('123')>另開視窗</a>

2010年3月19日 星期五

確認備份檔的原始狀況

ex:查詢TEST.bak此備份檔的原始狀況
進入SQL查詢介面輸入:
restore FileListOnly
from disk='D:\test\TEST.bak'

2010年3月11日 星期四

出現blocked..many connection errors


進入ssh

打telnet 測此MySQL的主機

telnet 10.30.20.20 3306
Trying 10.30.20.20...
Connected to localhost.com.tw.
Escape character is '^]'.
pHost 'localhost s.com.tw' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'Connection closed by foreign host.



打mysql -h 主機ip -u帳號 -p密碼
mysql -h 127.0.0.1 -uaccount -ppasswd

出現此訊息:
Host ’hostname’ is blocked because of many connection errors.
Unblock with ’mysqladmin flush-hosts’

解決方式為:
mysqladmin flush-hosts -u帳號 -p密碼
mysqladmin flush-hosts -uaccount -ppasswd

此錯誤訊息可將 max_connect_errors 設定加大,但需重開機

查詢線上有多少人在使用

進入ssh

  1. sudo su -
  2. mysqladmin processlist -uaccount -ppassword
    -u帳號
    -p密碼

顯示資料庫權限狀況

ex:顯示testdb此DB的資料庫權限狀況
select * from mysql.db where db='testdb'

2010年3月9日 星期二

修改 rssd 設定檔

  1. 登入RSSD所在之ASE
  2. 修改參數 rs_configure
    EX:rs_configure "memory_limit","1000"
              go 
  3. 看設定檔
    rs_configure
    go 

2010年3月2日 星期二

備份mysql DB的table schema

1. vi dump_all_table_schema.sh

2. 用for迴圈去抓出3個DB name,dump出這3個DB的table schema
#!/bin/sh
echo start `date '+%Y%m%d %H%M%S'`


DIR=/mysql/mysql_dump
FIL=_schema


for DB in db_name_1  db_name_2 db_name_3 
do 
  /usr/local/bin/mysqldump -uaccount -ppassword --no-data $DB > $DIR/$DB$FIL.txt
done


echo start `date '+%Y%m%d %H%M%S'`

grep語法-找出文字A或文字B的資料

找出test.log裡 符合2010/02/27和 符合ABC或ERROR的資料
cat test.log | grep '2010/03/27' | grep -E 'ABC|ERROR'

-E <== 指regular expression

找檔案在哪

我要找 a.sh 這個檔案在哪的話
find / -type f -name 'a.sh'
-type f <= 找檔案

shell尋找文字在哪個檔案

//尋找select top 1 id from txtA where email在php的哪個檔案
grep "select top 1 id from txtA where email " */*.php

2010年2月28日 星期日

解決flash一直在最上面的問題

要把flah蓋住
原本










變成











<!--顯示圖片-->
<link type="text/css" media="screen" rel="stylesheet" href="js/colorbox/example1/colorbox.css" />
<!--[if IE]>
<link type="text/css" media="screen" rel="stylesheet" href="js/colorbox/example1/colorbox-ie.css" title="example" />
<![endif]-->
<!--顯示圖片-->
<script language="javascript" src="js/jquery-1.3.2.min.js"></script>
<script language="javascript" src="js/swfobject/swfobject.js"><!--flash 用-->
<script type="text/javascript" src="js/colorbox/colorbox/jquery.colorbox.js"><!--顯示圖片-->

<script type="text/javascript">
params = {};
params.wmode = 'Transparent';
swfobject.embedSWF("flash/logo.swf", "myContent", "230", "140", "9.0.0", '', '', params);
</script>

參考資料:
http://www.dynamicdrive.com/forums/showthread.php?t=46413
http://audi.tw/Blog/webDesign/Flash.swfobject.js.asp

2010年2月24日 星期三

新增sudo user

Linux:
  1. sudo su -
  2. cd /usr/sbin

  3. ./adduser 新增的帳號  EX:./adduser testacc
  4. 給新增的帳號密碼 passwd 帳號 EX:passwd testacc
  5. 開啟visudo ./visudo 
  6. 按下i進入編輯
  7. 在 ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    後加入  testacc    ALL=(ALL)       ALL
  8. 按下:wq!存檔
FreeBsd:





1.打adduser
# adduser
Username: testname
Full name: testname
Uid (Leave empty for default): 
Login group [testname]: 
Login group is testname. Invite testname into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]: 
Home directory [/home/testname]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: yes
Use an empty password? (yes/no) [no]: no
Use a random password? (yes/no) [no]: no
Enter password: 
Enter password again: 
Lock out the account after creation? [no]: 
Username   : testname
Password   : *****
Full Name  : testname
Uid        : 1008
Class      : 
Groups     : testname 
Home       : /home/testname
Home Mode  : 
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (testname) to the user database.
Add another user? (yes/no): no
Goodbye!

2.編輯sudoers
vi /usr/local/etc/sudoers

在# User privilege specification
root    ALL=(ALL) ALL
後加入
testname ALL=(ALL) ALL



freebsd 安裝sudo
ssh> cd /usr/ports/security/sudo
ssh> make install clean
進入後有個畫面,直接按TAB,然後OK
ssh> rehash

2010年2月8日 星期一

備份crontab 的資料

sudo su -

//建立放crontab的資料夾
mkdir crontab_bk

//進入cron_bk資料夾
cd /root/crontab_bk


//root帳號的 crontab 備份
crontab -l > crontab.2010020810

//account帳號的 crontab 備份
//-u指帳號
crontab -u account -l > crontab.account.2010020811

crontab -l :列出crontab
crontab -e :編輯crontab
crontab -r :清除crontab (危險:注意)

crontab備份蓋回crontab
crontab 加檔名
ex:把 cron.2010020811 crontab 的備份檔蓋回crontab
crontab cron.2010020811


刪除目錄

//刪除 xx 這個目錄
rmdir xx

顯示系統設定

show variables

show status

ex:找出variable_name為char開頭的資料
show variables where variable_name like 'char%'

2010年2月7日 星期日

ie看不到圖的解決方式

發生jpg圖在IE看不到,但在firefox和google瀏覽器卻看的到。
google:




http://blog.mukispace.com/2009/06/03/solve-ie-no-pic/文章得知,IE瀏覽器好像尚未支援CMYK色的輸出,所以如果你的圖片存成CMYK,那IE就無法顯示你的圖片。
因此把圖改成RGB模式即可。

開啟Photoshop
影像->模式 即可看出目前的圖片模式


將CMYK改成RGB,再存檔後,在IE即可看到圖了。

2010年2月6日 星期六

尋找檔案或目錄

ssh下
//從根目錄下開始找my.開頭的檔案
find / -name 'my.*'

//從根目錄下開始找my的目錄
find / -name 'my'

找出DB下的所有table

sudo su -

//找出mysql這個DB下的所有Table
// account :指登入mysql的帳號
ssh下
mysqlshow -u account -p mysql
Enter password:XXX

顯示所有的DataBase

sudo su -

// account :指登入mysql的帳號
ssh下
mysqlshow -u account -p
Enter password:XXX

2010年2月5日 星期五

查詢MySQL版本資訊

select version();

找出table的資訊

//DBName指的是要查哪個DB下的table資訊
SHOW TABLE STATUS FROM DBName


//找出mysql下func 此table的資訊
// account :指登入mysql的帳號
ssh下
mysqlshow -uaccount -p mysql func
Enter password:XXX

(只限用在MyISAM的Table)

ssh> cd /usr/var/db/mysql/xxx
ssh> #myisamchk -dvv XXX.MYI

顯示使用者所擁有的權限

//顯示testaccount帳號的權限
SHOW GRANTS FOR 'testaccount'@'localhost';

給權限

//給testacc table1資料庫的select,insert,update,delete權限
grant select,insert,update,delete on table1.* to testacc;

//新增使用者root,可由任何地方登入,密碼為pass --此句話法無Grant_priv權限
grant all privileges on  *.* to root@'%' identified by 'pass';

//新增使用者acc有root權限,可由任何地方登入,密碼為pass
grant all privileges on  *.* to acc@'%' identified by 'pass' with grant option;


//給帳號root的權限
grant all on *.* to testacc with grant option;

找出自已建的有所有的DB和table等資訊

SELECT T.TABLE_SCHEMA, T.TABLE_NAME, T.ENGINE, T.TABLE_ROWS
FROM information_schema.`TABLES` T
where TABLE_TYPE <> 'SYSTEM VIEW';

找出所有的user

select * from mysql.user

查詢MySQL 資料庫的編碼

--TESTDB 是指DB的名稱
SHOW CREATE DATABASE TESTDB

2010年2月4日 星期四

找出自已建的有所有的DB和table等資訊

SELECT T.TABLE_SCHEMA, T.TABLE_NAME, T.ENGINE, T.TABLE_ROWS
FROM information_schema.`TABLES` T
where TABLE_TYPE <> 'SYSTEM VIEW';

2010年2月3日 星期三

big5轉utf8

-f:指原始檔的編號
-t:指輸出的編號

ex:將big5的test2.txt轉碼成utf8,轉後的檔名為test2_utf.txt
iconv -f big-5 -t utf-8 /data/mysql/test2.txt > /data/mysql/test2_utf.txt

PS.經測試,在某些情況下,是會有問題,不能轉成功

mysql在linux下指令備份還原

備份
-u:指帳號
-p:指密碼
將testDB(DB name)的testTable(table name)備份至test.txt(不含table內的資料
mysqldump -uroot -prootpwd --no-data testDB testTable > test.txt

將testDB(DB name)的testTable(table name)備份至test.txt(不含create table語法
mysqldump -uroot -prootpwd --no-create-info testDB testTable > test.txt

備testDB整個DB的資料
mysqldump -uroot -prootpwd testDB > test.txt

備testDB的testTable、testTable2、testTable3備份至test.txt
mysqldump -uroot -prootpwd testDB testTable testTable2 testTable3 > test.txt

還原
將test.txt的資料還原至 testDB(DB name)
mysql -uroot -prootpwd testDB < test.txt

參考資料:http://imysql.cn/mysql_backup_and_recover

看cpu和記憶體資料

看記憶體
free -m

        total        used       free     shared    buffers     cached
Mem:         16040      16017         23          0         30        15829


cd /proc
看記憶體 :cat meminfo
看CPU:cat cpuinfo

-----------------------------------------------------------------
freebsd:
cat /var/run/dmesg.boot | more

sysctl hw.model :看CPU型號
sysctl kern.smp.cpus:看有幾顆CPU

2010年1月31日 星期日

讀卡機在windows 7不能使用

在裝置管理員有出現黃色驚嘆號

解決方式 按電腦右鍵->內容->裝置管理員
































































參考資料:http://briian.com/?p=6478


2010年1月29日 星期五

update statistics

update statistics會吃大量的I/O,但不會造成 table lock。
update statistics會重新統計索引的統計資料
在大量delete後,應該需要執行update statistics

ex:
use test_DB
go 


update statistics test_Table
go

2010年1月28日 星期四

sftp -- 上傳和下載

sftp testname@123.11.11.11

put vw*  --會把vw開頭的所有檔案上傳到123.11.11.11主機的/home/testname下

get vw* --會把vw開頭的所有檔案下載到目前的目錄下

參考資料:http://linux.vbird.org/linux_server/0310telnetssh.php#ssh_client_sftp

2010年1月27日 星期三

bcp語法

bcp db..table out 路徑 -S主機名稱 -U使用者 -P密碼 -t分欄符號 -r分行符號 -c -Jbig5(語言) (後面為固定)=>把db的資料bcp出來到路徑
bcp db..table in 路徑 -S主機名稱 -U使用者 -P密碼 -t分欄符號 -r分行符號 -c -Jbig5(語言) (後面為固定)=>把路徑的資料bcp到db


bcp testDB..testTable out /sybase/ddata.data -Stos -Utestuser -Ptestpass -t'<>' -r'||' -c -Jbig5
bcp testDB..testTable in /sybase/ddata.data -Stos -Utestuser -Ptestpass -t'<>' -r'||' -c -Jbig5

2010年1月19日 星期二

搜尋字串-grep

--找出有pc字串的句字
cat testabc.txt | grep 'pc'

--找出不含pc字串的句字
cat testabc.txt | grep -v 'pc'

--顯示出行數
cat testabc.txt | grep -n 'pc:'

複製檔案或資料夾

//複製檔案
cp 來源檔 目的檔


EX:把test20100119.gz copy 一份,檔名是0119
cp test20100119.gz 0119



//複製目錄
cp -r  來源檔 目的檔

EX:把test資料夾copy 一份,檔名是0119
cp -r test  test_test



參考資料:http://linux.vbird.org/linux_basic/0220filemanager.php

2010年1月14日 星期四

像樹狀的清單

若要做個樹狀的清單,以下面的excel為例,要在第一個欄位選B時,第二個欄位只能出現B1-B8的選單,做法如下:


第二階之後的名稱需為第一階的值





定義名稱


  1. 開啟Excel
  2. 插入->名稱->定義



2010年1月13日 星期三

修改密碼

修改XX帳號的密碼
passwd XX

EX:
[ test~]$ passwd XX

Changing password for user XX.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.


修改自已的密碼
用帳號登入後,打passwd為修改自已的密碼
先輸入舊密碼,再輸入兩次新密碼即可

EX:
[ test~]$ passwd
Changing password for user testroot.
Changing password for testroot
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[test ~]$

參考資料:http://linux.vbird.org/linux_basic/0410accountmanager.php#passwd