bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for 5 月, 2010

忘記 PostgreSQL 的管理者密碼該如何重新設定?

若是因為太久沒有使用而忘記 PostgreSQL 資料庫的管理者 postgres 帳號的密碼, 可以用下列的過程來重新設定:

修改用戶端認證設定檔 pg_hba.conf 將原來的 local 設定給註解掉, 例如:

#local all all XXXX

增加一行設定

local all all trust

存檔後重新啟動 postgresql 服務後就可以在主機上免密碼登入

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@bestlong ~]# psql -U postgres template1
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

template1=# alter user postgres password 'YourNewPassword';
ALTER ROLE
template1=# \q
[root@bestlong ~]#

將密碼重設之後再還原 pg_hba.conf 的設定與重新啟動 postgresql 服務, 以回復到原來的安全性

Leave a Comment

IPTraf 一個 Linux 環境下的網路流量監控程式

比以前所提到 iftop 的功能還要多的網路流量監控程式。可依想看的資訊分類,可分網卡、分協定、分封包大小…..等,還可自訂規則過濾。

在 Fedora 可以用 yum install iptraf 指令安裝。

想要顯示特定網路介面例如 ppp0 可以使用指令 iftop -s ppp0 來監看。

Leave a Comment

如何得知 MySQL 資料庫的 Character Set and Collation ?

每個 MySQL 資料庫都各自有一個預設編碼 (database character set) 與一個預設定序 (database collation) 的設定值.
可以在建立資料庫時決定, 也可以透過 ALTER 來改變. 若是不確定設定值時可以透過下列方式取得:

下列指令可以查詢目前連線使用的資料庫設定值:

1
2
mysql> SHOW VARIABLES LIKE "character_set_database";
mysql> SHOW VARIABLES LIKE "collation_database";

若是有權限存取資料庫可以執行下列指令:

1
mysql> SHOW CREATE DATABASE DATABASE_NAME;

Leave a Comment

PHP執行MSSQL預儲程序時出現mssql_bind() [function.mssql-bind]: Unable to set parameter錯誤

出現問題的程式碼如下:

1
2
3
4
5
<?php
$sSQL = "select ..."; //超過 300 個字元的SQL指令
$proc = mssql_init('MyPagingRecordSet', $db_link);
mssql_bind($proc, '@strSQL', $sSQL, SQLVARCHAR, false, false) or print_r(error_get_last());
?>

執行的預儲程序

1
2
3
4
5
6
7
CREATE PROCEDURE MyPagingRecordSet
  @strSQL VARCHAR(1000),  --查詢 sql,如 select * from [user]
  @PageIndex INT = 1,     --查詢的頁號
  @PageSize INT = 30      --每頁顯示紀錄數
AS
--省略內容
GO

不過當 $sSQL 變數內只有很短的 SQL 命令時, 程式是可以正常執行的, 所以改成指定參數長度如下:

1
mssql_bind($proc, '@strSQL', $sSQL, SQLVARCHAR, false, false, 1000) or print_r(error_get_last());

執行結果還是一樣的錯誤訊息, 這應該是字串長度導致的問題, 再把程式改成

1
mssql_bind($proc, '@strSQL', $sSQL, SQLTEXT, false, false) or print_r(error_get_last());

這樣就可以正常執行了, 而 Stored Procedure 的參數的資料型別也可以改成

1
2
3
4
5
6
7
CREATE PROCEDURE MyPagingRecordSet
  @strSQL text,        --查詢 sql,如 select * from [user]
  @PageIndex INT = 1,  --查詢的頁號
  @PageSize INT = 30   --每頁顯示紀錄數
AS
--省略內容
GO

是否要改, 就看執行上是否有其他問題了, 目前沒改也可以執行.

Leave a Comment

免費的海報分割列印軟體 PosteRazor

國產商業軟體非常好色有個很方便的功能就是能將大尺寸的海報圖片分割列印成數張 A4 尺寸來拼貼,讓只有一般A4尺寸印表機的人也可以製作大過A4尺寸的海報,只不過非常好色是商業軟體需要付費購買。

而 PosteRazor 就可以將大型圖片(或海報)分割成你想要的尺寸,並轉成 PDF 檔讓你印出,不用大型印表機也可以列印出大型圖片(或海報)。使用非常簡單,只要五個步驟就可以完成動作。

http://posterazor.sourceforge.net/
http://sourceforge.net/projects/posterazor/

Comments (1)

  • 近期留言

  • 標籤

  • 彙整