一般剛裝好的SQL Server是不能使用帳號密碼登入的
就算設定了使用者也是一樣
下面就來介紹一下除了設定使用者(security -> login)之外的其他設定
----
1. Server的驗證模式 調整成混合模式 (需要重啟Server)
http://technet.microsoft.com/zh-tw/library/ms143705(v=sql.90).aspx
2. SQL Server Configuration Manager的"網路組態"設定啟用TCP/IP,並且在裡面的IPALL設定Port為指定的port(default=1433)
(下面這個兩個設定都有啊,保哥果然厲害!!!)
http://blog.miniasp.com/post/2007/12/28/How-to-enable-SQL-Express-TCP-IP-connection.aspx
2014年4月29日 星期二
2014年3月7日 星期五
MySQL Create User
CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' with grant option
ps aux
指令介紹:
ps aux:看行程
grep:篩選
awk:格式化輸出
應用:
ps aux | grep 'httpd' | awk '{print $2}'ps aux:看行程
grep:篩選
awk:格式化輸出
應用:
kill $(ps aux | grep 'httpd' | awk '{print $2}')
2014年2月19日 星期三
Tomcat中createNewFile發生錯誤
Tomcat中createNewFile發生錯誤
<Item>
寫檔案 createNewFile() 發生exception
發現是Tomcat安裝路徑含有空白
<Solve>
可以透過移動Tomcat安裝路徑來解決
但是 直接一點的解法 應該是需要控制tomcat 或是 java中resource的存取
在研究...
<Ref>
ref: http://www.coderanch.com/t/554674/java/java/Create-file-spaces-file-path
<Item>
寫檔案 createNewFile() 發生exception
發現是Tomcat安裝路徑含有空白
<Solve>
可以透過移動Tomcat安裝路徑來解決
但是 直接一點的解法 應該是需要控制tomcat 或是 java中resource的存取
在研究...
<Ref>
ref: http://www.coderanch.com/t/554674/java/java/Create-file-spaces-file-path
2013年12月25日 星期三
增加sudo權限給使用者
情境
需求
1. root帳號
2. visudo
步驟
1. 利用root登入 或是 其他有權限的使用者
2. 輸入 visudo,會自動開啟vi,在裡面找到
root ALL=(ALL) ALL
3. 在這個區塊輸入指定的username,並設定權限如下
username ALL=(ALL) ALL
4. :wq! 存檔, 指定的user已經可以使用sudo囉!
2013年11月7日 星期四
Thread Test!!
import java.util.LinkedList;
import java.util.List;
public class Can {
public static int count = 0;
public LinkedList<String> can = new LinkedList<String>();
public Can(){
count++ ;
System.out.println(count);
}
public void addObj(String obj){
can.addLast(obj);
}
public void removeObj(){
can.removeLast();
}
@Override
public String toString() {
return can.toString();
}
}
-------------------------------------------------------------------
class Person implements Runnable{
public String name;
public Can can;
public Person(Can can, String name){
this.can = can ;
this.name = name ;
}
public void action(){
int SIZE = 100;
if(can.can.size() == SIZE){
for(int i = 0 ; i < SIZE; i++){
can.removeObj();
System.out.println(name +" take");
}
}else{
for(int i = 0 ; i < SIZE; i++){
can.addObj(name);
System.out.println(name +" drop");
}
}
}
@Override
public void run() {
//synchronized(this){ // 鎖在自己身上。沒用!!
synchronized(can){ // 鎖在同樣的instance上。work!!
//synchronized(this){ // 鎖在自己身上。沒用!!
synchronized(can){ // 鎖在同樣的instance上。work!!
action();
}
}
}
public class Main {
public static Can c = new Can();
public static Can getACan(){
return c; // 模擬Container, singleton
// return new Can();// 模擬Container, non-singleton
}
public static void main(String[] args) {
Can can = getACan();
Thread p1Action = new Thread(new Person(getACan(), "A"));
p1Action.start();
Thread p2Action = new Thread(new Person(getACan(), "B"));
p2Action.start();
}
}
2013年10月27日 星期日
Log4j概念 與使用情境
那天在跟公司新人介紹log4j的時候
就突然想到其實這個設計很簡單啊 怎麼會一直都沒有被弄清楚?
所以 來吧!! 介紹一下!!
在log4j的官方文件上面有一段清楚地說明
http://logging.apache.org/log4j/1.2/manual.html
Appender用來控制訊息會被放到什麼地方
Layout用來控制訊息的格式
簡單的情境如下
我們設定一個appender與layout
指定log會被記錄到檔案中 (appender)
並且會使用 "yyyy/mm/dd hh:MM:ss [訊息等級] 訊息內容" 格式來記錄訊息
接著設定 logger
指定一個logger要log的等級是INFO以上
並且將logger與appender接上
之後在程式裡面就取得此logger,並且使用應該使用的log等級來記錄訊息
例如
logger.trace("測試測試");
logger.debug("變數A = " + A);
logger.error("db conn. setting error.");
因為設定已經將log的等級設定為INFO
所以依照 TRACE < DEBUG < INFO < WARN < ERROR < FATAL 的等級
之前的訊息只有 error的項目 會被記錄到最後產生出來的檔案中
就突然想到其實這個設計很簡單啊 怎麼會一直都沒有被弄清楚?
所以 來吧!! 介紹一下!!
在log4j的官方文件上面有一段清楚地說明
http://logging.apache.org/log4j/1.2/manual.html
Log4j has three main components: loggers, appenders and layouts. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported.Logger用來記錄訊息,包含log等級與log類型
Appender用來控制訊息會被放到什麼地方
Layout用來控制訊息的格式
簡單的情境如下
我們設定一個appender與layout
指定log會被記錄到檔案中 (appender)
並且會使用 "yyyy/mm/dd hh:MM:ss [訊息等級] 訊息內容" 格式來記錄訊息
接著設定 logger
指定一個logger要log的等級是INFO以上
並且將logger與appender接上
之後在程式裡面就取得此logger,並且使用應該使用的log等級來記錄訊息
例如
logger.trace("測試測試");
logger.debug("變數A = " + A);
logger.error("db conn. setting error.");
因為設定已經將log的等級設定為INFO
所以依照 TRACE < DEBUG < INFO < WARN < ERROR < FATAL 的等級
之前的訊息只有 error的項目 會被記錄到最後產生出來的檔案中
2013年9月13日 星期五
Maven專案設定
通常我們在開發的時候,會把專案切成幾個部分
例如前端呈現與後台邏輯,各自也可以有自己架構
前端呈現或許可以是單純html+javascript library
也可以用類似ZK這樣比較大型的framework
這時候我們一樣可以使用Maven來幫助我們做管理
首先 建立一個主專案 裡面的pom.xml設定
<project>
.
.
.
<packaging>pom</packaging>
.
.
.
<modules>
<module>webProject</module>
<module>serviceProject</module> </modules>
.
.
.
</project>
有看到module嗎?我們可以直接在主專案資料夾裡面建立其他的maven專案
這樣當我們編譯主專案的時候,就會跟著依照module的名稱,去編譯其他的module囉
例如前端呈現與後台邏輯,各自也可以有自己架構
前端呈現或許可以是單純html+javascript library
也可以用類似ZK這樣比較大型的framework
這時候我們一樣可以使用Maven來幫助我們做管理
首先 建立一個主專案 裡面的pom.xml設定
<project>
.
.
.
<packaging>pom</packaging>
.
.
.
<modules>
<module>webProject</module>
<module>serviceProject</module> </modules>
.
.
.
</project>
有看到module嗎?我們可以直接在主專案資料夾裡面建立其他的maven專案
這樣當我們編譯主專案的時候,就會跟著依照module的名稱,去編譯其他的module囉
2013年7月30日 星期二
Jasypt - BasicTextEncryptor
http://jasypt.org/api/jasypt/1.9.0/org/jasypt/util/text/BasicTextEncryptor.html
Sample:
Sample:
import org.jasypt.util.text.BasicTextEncryptor;
public class EncryptTest {
public static void main(String[] args) {
BasicTextEncryptor bte = new BasicTextEncryptor();
bte.setPassword("password");
String text = "This is visible message!";
String encrypt = bte.encrypt(text);
System.out.println("invisible msg:"+encrypt);
String rs = bte.decrypt(encrypt);
System.out.println("Decode:" +rs);
}
}
聽說寫網誌 還是要打一些字。
所以跟廢話注解一樣,這是在說明BasicTextEncryptor的用法。
(Y)
聽說寫網誌 還是要打一些字。
所以跟廢話注解一樣,這是在說明BasicTextEncryptor的用法。
(Y)
2013年6月28日 星期五
bootstrap compile
brew install nodejs
// 先有nodeJS才會有npm
npm install
// 到git下來的資料夾,裡面有個package.json設定有該裝的東西 npm可以安裝起來
make
// 先make安裝基本的library -> node_modules
make bootstrap
// 編譯,會輸出到bootstrap資料夾
--
npm 已經安裝了!!! (超怪...)
被安裝在 /usr/local/lib/node_modules/npm
導致不能安裝nodejs
homebrew指定的解安裝指令也不能用... 真的有點囧 (npm uninstall npm -g)
最後直接移除掉npm的資料夾
再安裝nodejs (成功)
--
路徑沒有被自動建立起來.... (囧)
brew link node (失敗)
brew link --overwrite node
// 先有nodeJS才會有npm
npm install
// 到git下來的資料夾,裡面有個package.json設定有該裝的東西 npm可以安裝起來
make
// 先make安裝基本的library -> node_modules
make bootstrap
// 編譯,會輸出到bootstrap資料夾
--
npm 已經安裝了!!! (超怪...)
被安裝在 /usr/local/lib/node_modules/npm
導致不能安裝nodejs
homebrew指定的解安裝指令也不能用... 真的有點囧 (npm uninstall npm -g)
最後直接移除掉npm的資料夾
再安裝nodejs (成功)
--
路徑沒有被自動建立起來.... (囧)
brew link node (失敗)
brew link --overwrite node
訂閱:
文章 (Atom)