網路上說明JNDI的文章不多
會提到MSSQL的文章更少 (大都教MySQL)
好死不死 我新派遣的公司就是用MSSQL = =+
網路上找半天,拼湊了半天,卻都不成功。
最後被我放在家的天書救了。
紀錄以下通用範例:
違願之風
2014年5月14日 星期三
2014年4月10日 星期四
Bitnami Redmine 升級
不知道怎的,Redmine被我搞壞了,哈。 (苦笑
只好埋頭苦修,最後不管如何回朔,如何覆蓋,DELETE跟UPDATE都會有問題。 U_U
最後想說,好吧,那我直接把Bitnami Redmine 2.4 升級到 2.5版,總可以了吧。
下面就是得出步驟:
1. 先把2.4版先完整備份,然後關閉Redmine
> tar -czvf redmine-backup.tar.gz /opt/redmine /*backup 整個 redmine*/
> sudo sh ./mysqldump -u username -p bitnami_redmine > backup.sql /*dump出整個DB(重要)*/
2. 把原本的檔案更名 (方便新版灌進來用原有名稱)
> sudo mv redmine/ redmine-2.4/
3. 把新的Bitnami Redmine灌進去 (記得確認32/64版,還有改權限)
4. 按照原設定安裝
5. 將備份的DB 灌回新的DB
> ./mysql -u root -p bitnami_redmine < backup.sql
6. (重要)移植DB程序 (沒有安裝ruby 記得先裝[sudo apt-get install ruby])
> 1) cd /opt/redmine/apps/redmine/htdocs
> 2) ruby bin/rake db:migrate RAILS_ENV=production
7. 啟動Redmine
> sudo sh /opt/bitnami/ctlscript.sh restart
[後續]
成功升級之後,回頭想想之前,搞不好做了第6步的 移植DB程序 就可以修復成功?
只好埋頭苦修,最後不管如何回朔,如何覆蓋,DELETE跟UPDATE都會有問題。 U_U
最後想說,好吧,那我直接把Bitnami Redmine 2.4 升級到 2.5版,總可以了吧。
下面就是得出步驟:
1. 先把2.4版先完整備份,然後關閉Redmine
> tar -czvf redmine-backup.tar.gz /opt/redmine /*backup 整個 redmine*/
> sudo sh ./mysqldump -u username -p bitnami_redmine > backup.sql /*dump出整個DB(重要)*/
2. 把原本的檔案更名 (方便新版灌進來用原有名稱)
> sudo mv redmine/ redmine-2.4/
3. 把新的Bitnami Redmine灌進去 (記得確認32/64版,還有改權限)
4. 按照原設定安裝
5. 將備份的DB 灌回新的DB
> ./mysql -u root -p bitnami_redmine < backup.sql
6. (重要)移植DB程序 (沒有安裝ruby 記得先裝[sudo apt-get install ruby])
> 1) cd /opt/redmine/apps/redmine/htdocs
> 2) ruby bin/rake db:migrate RAILS_ENV=production
7. 啟動Redmine
> sudo sh /opt/bitnami/ctlscript.sh restart
[後續]
成功升級之後,回頭想想之前,搞不好做了第6步的 移植DB程序 就可以修復成功?
2014年4月8日 星期二
2014年4月7日 星期一
MySQL dump
常常忘記MySQL dump怎麼用,乾脆在這邊紀錄一下
其實很簡單:
dump出整個DB
sudo sh ./mysqldump -u username -p dbname > destination.sql
dump出某TABLE
sudo sh ./mysqldump -u username -p dbname tblname > destination.sql
[後續]
備註一下: dump的時候MySQL是要啟動的狀態,不然dump程式會連不上
其實很簡單:
dump出整個DB
sudo sh ./mysqldump -u username -p dbname > destination.sql
dump出某TABLE
sudo sh ./mysqldump -u username -p dbname tblname > destination.sql
[後續]
備註一下: dump的時候MySQL是要啟動的狀態,不然dump程式會連不上
2014年3月31日 星期一
如何遠端連線到MYSQL DB SERVER
假設我們的MySQL DB伺服器架在192.168.0.103
我現在想要用192.168.0.101 連過去
如果沒有設定的情況下
DB SERVER只接受localhost連線 也就是127.0.0.1
所以就算我有帳號密碼也會連不上 因為DB根本不知道自己是.0.103
所以要去my.cnf這個設定檔去做設定
找到這句:
bind-address = 127.0.0.1
並將IP改成自己在網絡上的IP (或實體IP)
本範例為: 192.168.0.103
接著192.168.0.101這台就可以直接存取囉
(當然帳號與權限得在MySQL這邊先設定好)
[後續]
後來發現光這樣做,原先寫在程式裡面的getConnection()方法使用localhost去連會出錯 (原因是已經變成遠端連線,所以本端連線會失效)
因此要把本端連線也改成用IP去連,這樣就可以了。
我現在想要用192.168.0.101 連過去
如果沒有設定的情況下
DB SERVER只接受localhost連線 也就是127.0.0.1
所以就算我有帳號密碼也會連不上 因為DB根本不知道自己是.0.103
所以要去my.cnf這個設定檔去做設定
找到這句:
bind-address = 127.0.0.1
並將IP改成自己在網絡上的IP (或實體IP)
本範例為: 192.168.0.103
接著192.168.0.101這台就可以直接存取囉
(當然帳號與權限得在MySQL這邊先設定好)
[後續]
後來發現光這樣做,原先寫在程式裡面的getConnection()方法使用localhost去連會出錯 (原因是已經變成遠端連線,所以本端連線會失效)
因此要把本端連線也改成用IP去連,這樣就可以了。
2014年3月13日 星期四
JSP導出Excel奇怪的亂碼問題
出處: JSP導出Excel奇怪的亂碼問題
遇到跟連結中作者一樣的問題,JSP導出EXCEL一般情況都好好的,但就是資料少的時候會出現亂碼。
文中提到
<%
//就是靠這一行,讓前端瀏覽器以為接收到一個excel檔
response.setHeader("Content-disposition" ,"attachment; filename=Excle.xls");
%>
就是解決關鍵,我自己的檔案中原本是inline,改成attachment之後就沒問題囉!!
感謝作者。
[後續]
不知道為什麼,後來又跑一次CODE又失敗了,只好繼續找答案,這次找到這個:
要在寫入EXCEL的時候先寫這段:
//PrintWriter op = response.getWriter();
op.write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
整段如下:
<%
//將產生的排行表導入EXCEL檔,以供下載
try{
response.reset();
String fileName = request.getParameter("fileName");
response.setHeader("Content-disposition","attachment; filename=Ranking_" + fileName);
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.setHeader("Cache-Control", "pre-check=0, post-check=0, max-age=0");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Encoding", "UTF-8");
response.setHeader("Expires", "0");
response.addHeader("Accept-Language", "zh-tw");
response.setContentType("application/ms-excel");
PrintWriter op = response.getWriter();
String CSV = request.getParameter("tableHTML");
if (CSV == null)
{
CSV="NO DATA";
}
if (fileName == null)
{
CSV="NO FILE NAME SPECIFIED";
}
op.write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
op.write(CSV);
}catch (Exception ex){
ex.printStackTrace();
}
%>
遇到跟連結中作者一樣的問題,JSP導出EXCEL一般情況都好好的,但就是資料少的時候會出現亂碼。
文中提到
<%
//就是靠這一行,讓前端瀏覽器以為接收到一個excel檔
response.setHeader("Content-disposition" ,"attachment; filename=Excle.xls");
%>
就是解決關鍵,我自己的檔案中原本是inline,改成attachment之後就沒問題囉!!
感謝作者。
[後續]
不知道為什麼,後來又跑一次CODE又失敗了,只好繼續找答案,這次找到這個:
要在寫入EXCEL的時候先寫這段:
//PrintWriter op = response.getWriter();
op.write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
整段如下:
<%
//將產生的排行表導入EXCEL檔,以供下載
try{
response.reset();
String fileName = request.getParameter("fileName");
response.setHeader("Content-disposition","attachment; filename=Ranking_" + fileName);
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.setHeader("Cache-Control", "pre-check=0, post-check=0, max-age=0");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Encoding", "UTF-8");
response.setHeader("Expires", "0");
response.addHeader("Accept-Language", "zh-tw");
response.setContentType("application/ms-excel");
PrintWriter op = response.getWriter();
String CSV = request.getParameter("tableHTML");
if (CSV == null)
{
CSV="NO DATA";
}
if (fileName == null)
{
CSV="NO FILE NAME SPECIFIED";
}
op.write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
op.write(CSV);
}catch (Exception ex){
ex.printStackTrace();
}
%>
2014年3月7日 星期五
開發之前,先確定客戶伺服器環境
I have learned this in a hard way...
開發之前,對方答應讓我們用我們的環境開發
所以我們用了當下比較新版的java1.7 tomcat7 mysql5.6
到最後客戶卻只能提供java 1.7, tomcat 6, mysql5.1
許多伺服器設定又不允許做更改
只能在CODE裡面做手腳去解決
It is a total disaster!!!
早點知道環境就不用安裝的這麼痛苦了,MLGB。
開發之前,對方答應讓我們用我們的環境開發
所以我們用了當下比較新版的java1.7 tomcat7 mysql5.6
到最後客戶卻只能提供java 1.7, tomcat 6, mysql5.1
許多伺服器設定又不允許做更改
只能在CODE裡面做手腳去解決
It is a total disaster!!!
早點知道環境就不用安裝的這麼痛苦了,MLGB。
訂閱:
文章 (Atom)