:::
開發者討論區

Ooo2.0 Base + MySql無法使用中文輸入

discuss pic 2006-03-14 10:06:13
Hi,all
我想要使用Ooo2.0+mysql去實現具線上管理功能的資料庫
發現中文輸入會變成"?"

我在站上有看到螢火飛大大之前寫的教學文章,不過是1.0版的

2.0在連結資料庫時沒有讓我輸入編碼的地方

說明一下我的設定法
01.安裝Ooo2.0+jre5.x
02.在"C:\Program Files\Java\jre1.5.0_06\lib\ext\"置入"mysql-connector-java-3.1.5-gamma-bin.jar"

下載點在這裡
http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.5-gamma.zip/from/http://mirrors.hpcf.upr.edu/mysql/

03.安裝xampp
http://www.apachefriends.org/en/xampp.html

04.啟動xampp以phpmyadmin任意建立一個資料庫

05.啟動Ooo Base進入資料庫連線精靈
setp1.連結到現有資料庫 "MySql"
setp2.設定到MySql資料庫的連結
setp3.資料庫名稱:填上剛才04.中所建立的資料庫
伺服器URL:localhost(我是放在本機)
....(其餘保留預設即可)
setp4.使用者名稱"root" (xampp預設沒密碼)
setp5.按完成即可,註冊資料庫的部份不用選

請有相關設定經驗的朋友幫忙看一下,謝謝!
1129171371
discuss pic 2006-03-14 11:26:38
setp1.連結到現有資料庫 "MySql" ---> 建議改為:JDBC

資料來源URL:
jdbc:mysql://[host][:port]/[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
資料庫後面再加入:?useUnicode=true&characterEncoding=big5
encoding可依照實際情形輸入:big5, gb2312, utf-8, ....
+-+-+-+-+-+-+-+-
Hannibal
Hannibal愛用LibreOffice / OpenOffice
discuss pic 2006-03-14 23:01:23
OOo 2 我建議您用 ODBC 比較好。

ODBC 設定完,就可以用 OOo 提供的介面,設定 MySQL 的使用編碼,這樣會比 jdbc 方便。
1065351712
discuss pic 2006-03-15 09:40:07
謝謝你們的回答
以jdbc的方法設定時可以在資料表輸入中文並顯示
不過在存檔時發生編碼儲存錯誤
所以還是沒法子使用

至於ODBC之設定,我在步驟2的選擇系統ODBC來源的地方搞不定
是否能夠提供更詳盡的設定呢?
1129171371
discuss pic 2006-03-15 10:35:32
如果您的作業系統是 Windows 的話,請到 mysql 官方網站下載 Windows MySQL 的驅動程式,有一點要注意的是,MySQL Server 版本若是 4.0 以上,建議您下載 MyODBC-standard-3.51.9-win.msi,這樣存取 UTF-8 編碼才不會有問題。

若是 Linux 的話,請檢查您的系統有沒有安裝 MyODBC 套件,若是沒有,請用 Linux 提供的套件安裝程式,安裝 MyODBC 即可。

Windows 的使用者安裝完 MyODBC 驅動程式後,可以從控制台─ODBC 選 MySQL 設定 MySQL 伺服器資料。

Linux 使用者,請先看看 /etc/odbcinst.ini 有沒有如下的資料 :
[MySQL]
Description             ODBC for MySQL
Driver          
= /usr/lib/libmyodbc.so
Setup           
= /usr/lib/libodbcmyS.so
FileUsage               
1

沒有的話,請自行加進去。

再來,在自己的家目錄下,建立一個名為 .odbc.ini 的檔案,內容如下 :
[ePaper]
Trace          Off
TraceFile     
stderr
Driver          
= /usr/lib/libmyodbc.so
DSN            
ePaper
SERVER      
192.168.1.102
USER           
=
PASSWORD =
PORT           3306
DATABASE   
OSSIIDB

範例中的 ePaper 只是範例,請自行換掉您想用的名稱,DATABASE 是指資料庫名稱,SERVER 指定 MySQL Server 位址,USER 是使用者名稱,PASSWORD 不建議您寫在檔案內,保持空白。

設定完之後,開啟 OOo Base 指定 MySQL ODBC,在資料來源按下瀏覽按鈕,就可以看到您剛剛設定的 DSN 名稱了,選取後,輸入使用者名稱,以及是否有密碼,按測試,看看可否連接成功,如果失敗,請檢查您的 .odbc.ini 是否設定正確。

都正確後,在 OOo Base 中,就可指定該 DSN 指向之 MySQL 的編碼了,這樣應該很清楚了吧。
1065351712
discuss pic 2006-03-15 21:20:51
謝謝螢火飛大大您詳細的解說,可以使用了 ^^ 不過我在使用phpmyadmin登入時發現內文是亂碼? 而之前建立錯誤的無法在Ooo開啟的資料庫名稱反而在phpmyadmin內顯示出正確的中文字,怪了~ 我確定我的瀏覽器編碼是utf-8,而且在Ooo有把資料庫指定utf-8 不曉得是不是平台的關係 我再抓看看問題出在哪 note phpmyadmin utf-8無法正確顯示這樣子做或許可行 config.inc.php ,把以下的變數都改為 utf-8 : $cfg['DefaultLang'] = 'utf-8'; $cfg['DefaultCharset'] = 'utf-8'; 這個看看裡面有沒有 utf-8 ,沒有的話就自己加進去: $cfg['AvailableCharsets'] = array( : 'utf-8', : ); 這個把 FALSE 改成 TRUE $cfg['AllowAnywhereRecoding'] = TRUE;
1129171371
discuss pic 2006-03-16 09:00:37
非常期待各位前輩能發現完整解決方案,

我好希望趕快設立一個多人共用的資料庫系統,

大家加油啊!!
1102990241
discuss pic 2006-03-16 12:05:37
參照:
不過我在使用phpmyadmin登入時發現內文是亂碼?
而之前建立錯誤的無法在Ooo開啟的資料庫名稱反而在phpmyadmin內顯示出正確的中文字,怪了~
我確定我的瀏覽器編碼是utf-8,而且在Ooo有把資料庫指定utf-8
不曉得是不是平台的關係

您應該是用 Windows 吧?
Windows 版的 MyODBC 配合 MySQL 4 Server UTF-8 會有您所描述的問題,我也是被搞得快要花轟 後來才發現,這跟 MyODBC 的版本有關,請不要抓最新版的 ODBC Driver,用以下這個版本的 Driver 就沒問題了。

ftp://ftp.cs.pu.edu.tw/Unix/mysql/Downloads/MyODBC3/MyODBC-standard-3.51.9-win.msi

另外,還要注意MySQL Server 的 my.cnf ,有沒有加上下列敘述:
[mysqld]
datadir=/var/lib/mysql
socket
=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8

[mysql.server]
user=mysql
basedir
=/var/lib
default-character-set=utf8
1065351712
discuss pic 2006-03-16 15:22:09
Hi, 我昨天有試自己家裡的Linux PC (Ubuntulinux) 也是一樣用xampp去跑(lampp) 在設定上我回家有空再把詳細的資訊整理上來 不管在linux或MS底下,都能正確的連線並輸入中文(utf8) 使用phpmyadmin瀏覽資料同樣都是亂碼 Ps.非????? 而剛才我有試著修改my.cnf 採用utf8及big5 測試結果是在Ooo輸入時文字都變成??? 我有用"phpmyadmin 亂碼"的字串去找答案 得到的結果是phpmyadmin的問題!! 後來我使用phpmyadmin去找原本以mediawiki建立的資料發現是亂碼沒錯.... 原來是烏龍一場XD 我才剛接觸Access沒多久,一下子要轉進去sql似乎有點困難...>"< 未來這份資料庫可以用php直接寫成多人線上使用,想一想蠻方便的 ^^
1129171371
discuss pic 2006-03-16 22:53:24
apt-get install unixODBC libmyodbc

/etc/odbcinst.ini
[MySQL]
Description MySQL driver
Driver 
= /usr/lib/odbc/libmyodbc.so
Setup 
= /usr/lib/odbc/libodbcmyS.so
CPTimeout 
=
CPReuse =
FileUsage 1


/etc/odbc.ini
Driver MySQL
Database 
ooo
Trace          
Off
TraceFile     
stderr
DSN            
MySQL
SERVER      
localhost
USER           
=  
PASSWORD =
PORT           3306
DATABASE   
OSSIIDB


由於我是用lampp去架資料庫
所以必須自己建立連結sock
mkdir /var/run/mysqld
ln 
-/opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

ps.每次啟動都必需要重新建立,所以順便寫在開機程序中吧~

遠端連線控制
假如您在遠端連線出現下面錯誤訊息
[MySQL][ODBC 3.51 Driver]Client does not support authentication protocol requested by serverconsider upgrading MySQL client


請參考此設定
mysqlUPDATE mysql.user SET Password OLD_PASSWORD('newPassword')
-> 
WHERE Host 'someHost' AND User 'someUser';
mysqlFLUSH PRIVILEGES;


建立好上述的程序後就能順利的以ODBC的方式去連結資料庫

以上MySQL(with lampp)+Ooo Base 2.02
1129171371
discuss pic 2006-03-22 23:59:01
Hi,all
發表一下幾個我目前使用上的心得

資料表欄位只能在第一次輸入時變動,一旦建立後無法進行修改
資料表欄位建立好後一定要建立主索引鍵,否則會無法正常使用!
主索引鍵要設定成自動跳號必需直接以入MySQL修改欄位值
無法在OOo Base提供的介面做修改

解決方案:
資料表欄位可以使用phpmyadmin去做輔助修改

這部份我有用phpmyadmin做權限上的修改,結果還是一樣,照理說有權限建立資料表欄位的話,修改資料表也應該沒問題才對

另外,我把主機改成Debian Sarge後,直接使用上面的套件安裝,phpmyadmin中文顯示與MySQL也連線密碼錯誤的問題就解決了
PS.MySQL之所以無法連線是因為4.0與4.1以後的版本密碼的加密法不同,直接以SQL指令去修改密碼即可解決此問題

歡迎有使用Ooo Base+MySQL的人一起來共同討論
1129171371
discuss pic 2006-03-26 14:46:40
ODBC圖型建面設置 # apt-get install unixodbc unixodbc-bin libmyodbc # ODBCConfig 原文出處http://www.litrin.net/?q=node/210
1129171371
:::

快速登入

線上書籍列表

誰在線上

24人線上 (22人在瀏覽互動討論區)

會員: 0
訪客: 24

更多…