使用cURL達成https POST


kevin0523 發表在 痞客邦 留言(0) 人氣()

作日處理一個之前寫的程式ID登入和密碼,但發現帳號輸入大小寫,密碼則無此問題,因為密碼是透過MD5驗證,
結果都可以驗證過,本來是要做成區分大小寫的,經查驗後發現是我ID攔位在MySQL中用錯字符集編碼了,本來使
utf8_general_ci 但該編碼是不區分大小寫的,所以將編碼改成 utf8_bin ,這樣就可以了區分大小寫不同了。

以下為 MySQL 5.0 的所有 字符集編碼 資料

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL的快速修復

在長時間使用MySQL後,數據庫可能會出現一些問題。大多數問題可以通過簡單的操作進行快速修復。下面介紹兩種快速檢修

MySQL數據庫的方法。

kevin0523 發表在 痞客邦 留言(0) 人氣()

1. 安裝TermReadKey
wget http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz
tar xzvf Term*
cd Term*
perl Makefile.pl
make
make test
make install

kevin0523 發表在 痞客邦 留言(0) 人氣()

如何從一位菜鳥蛻變成為高手,靈活使用的SQL語句是必不可少的。
本文收集了部分比較經典,常用的SQL語句供大家參考,希望對大家有所幫助。

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL Master 如果意外的當掉, 重新開機.. 等等狀況, 造成 Replication 不會動, 通常會是 binlog 壞掉造成的, 通常看到這個能做的大多是重新把 Master 的資料倒出來, 再倒回 Slave, 然後重新開始, 但是當運氣不太好, 三天兩頭就有機器又燒起來的狀況, 就會去想更好的解法......

先來看看 Replication 出問題該怎麼查:

mysql -u root # 先進入 mysql

show slave status # 看看 Last_error 有沒有其它狀況(最常見是 Duplicate Key)

處理步驟:

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL 中有內建的設定, 在 my.cnf 中設定:
log-slow-queries = [slow_query_log_filename]
即可記錄查詢時間花費超過的 10s的 SQL 語法(Default).
若要改 5秒 可設定如: long_query_time = 5 即設定為 5s 記錄下來.找出 MySQL 哪些 Query 速度較慢

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL Table 若壞掉的時後, 若是 MyISM 通常會將 MySQL 停下來, 之後使用 myismchk 去修復 Table 的 MYI.

但是若不能將 MySQL 停下來, 但是 Table 又壞了, 就要使用 repair 來修了.

指令:
REPAIR TABLE table_name

詳細可參考 Mysql Reference Manual: REPAIR TABLE Syntax

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL 常用的設定和指令記錄, 採 FAQ 方式記錄.

問:MySQL 於 mysql> 使用 less 看結果
答:pager less -n -i -S
問:直式列出 query 結果
答:SELECT * FROM TABLE_NAMEG
問:設定 mysql> 變成 (user@host) [(dbname)]>
答:於 .bashrc 加一行
export MYSQL_PS1="(u@h) [d]> "

kevin0523 發表在 痞客邦 留言(0) 人氣()

當 MySQL 的資料量太大, 在使用 mysqldump的時後遇到 Out Of Memory 的時後該怎麼辦?

有以下兩種做法:

1. 設定 my.cnf, 設定以下參數, max_allowed_packet=16M 可隨機再調大.

[mysqldump] quick max_allowed_packet = 16M

2. 使用 -q (--quick) 的參數, 使用此參數就不會使用到 Memory.

使用範例: mysqldump -q -u root DB_NAME > DB_NAME.sql

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL MyISAM 有 4GB 的限制, 如果使用量超出 4GB, 有何方法能解決.

因: MySQL 用 32bits pointer 來記錄資料位置, 所以只能定址到4GB的空間, 再多就會出現此錯誤.

解法: 將原本檔案大小限制 轉換成 rows 數目限制即可. 但是特別注意, 要做此轉換前, 一定要做備份, 並對 table 做 OPTIMIZE TABLE... 千萬千萬要做 OPTIMIZE TABLE.

實作如下:

  1. mysqldump -u root DB_NAME > DB_NAME.sql 備份
  2. mysql> optimize table TABLE_NAME; (註)
  3. mysql> alter table TABLE_NAME max_rows=210000000 avg_row_length = 1024;


若是要建立或還原時就設定要轉換, 可於 CREATE TABLE 語法中, 最後指定如下:

kevin0523 發表在 痞客邦 留言(0) 人氣()

這功能一定要 MySQL 4 以上才有支援...

我發現很多人不知道也不會開啟該設定..
就算預設是Open得.但是預設上沒有配置QueryCacheMemory 所以等於沒開一樣...

各位可以看一下 show status; 後得資料...
其中.
代碼:


Qcache_queries_in_cache 0
Qcache_inserts 0
Qcache_hits 0
Qcache_lowmem_prunes 0
Qcache_not_cached 0
Qcache_free_memory 0
Qcache_free_blocks 0
Qcache_total_blocks 0

kevin0523 發表在 痞客邦 留言(0) 人氣()

MySQL 4.1 以後每個欄位若是 varchar or char 一樣還是只能存 255 個字,但是這跟 MySQL 4.0 的 255 意義可是大大的不同!

請看一下這篇:http://phorum.study-area.org/viewtopic.php?p=202666#202666

重點在於,MySQL 4.1 以上,varchar跟 char 判斷的這個欄位可以放多少個字,而不是多少個字元(byte)。

所以就算是中文字(欄位使用 UTF8 儲存),一樣可以塞 255 個中文字進去,而不再是之前的 255 / 3 or big5 的 255 / 2 囉!

kevin0523 發表在 痞客邦 留言(0) 人氣()

Redhat MySQL 預設會將 mysql.sock 放在 /var/lib/mysql/mysql.sock, 但是另外自己 make 的 php, 預設會去拉 /tmp/mysql.sock, 所以會連不到 MySQL, 或者 mysql_connect() 會出現 function not define 等問題(php.ini 有 extension=mysql.so, 並也 restart apache, 卻還出現此錯誤).

只要去修改 my.cnf, 將 /var/lib/mysql/mysql.sock 的路徑, 改到 /tmp/mysql.sock 即可. 如同以下步驟: 

  1. vi /etc/my.cnf
  2. #socket=/var/lib/mysql/mysql.sock # 註解掉
  3. socket=/tmp/mysql.sock # 設到 /tmp/mysql.sock

此完成後即可正常使用.

kevin0523 發表在 痞客邦 留言(0) 人氣()

建立資料庫
/usr/bin/mysqladmin -u root -p123456 create sfs3
還原資料庫
/usr/bin/mysql -u root -p123456 sfs3 < /ok/sfs3.sql
備份資料庫
/usr/bin/mysqldump -u root -p123456 sfs3 > /ok/sfs3.sql
刪除資料庫
/usr/bin/mysqladmin -u root -p123456 drop sfs3


依日期來備份資料庫
/usr/bin/mysqldump -u root -p123456 sfs3 > /ok/sfs3-$(date +%Y-%m-%d).sql

備份資料庫中的資料表
/usr/bin/mysqldump -u root -p123456 phpbb2 phpbb_users > /ok/phpbb_users.sql

還原資料庫中的資料表
/usr/bin/mysql -u root -p123456 phpbb2 < /ok/phpbb_users.sql

kevin0523 發表在 痞客邦 留言(0) 人氣()