本文目錄一覽:
mysql數據庫裡面表的編碼轉換
步驟一 將待導出的數據表的表結構導出(可以用Phpmyadmin、mysqldump等,很簡單就不說了),然後將導出的create table語句的CHARSET=latin1改為CHARSET=utf8,在目標庫newdbname中執行該create table語句把表結構建好,接下來開始導出-導入數據。命令:
./mysqldump -d DB_Dig /usr/local/tmp/tables.sql
步驟二 命令行:進入mysql命令行下,mysql -hlocalhost -uroot -p*** dbname
步驟三 執行SQL select * from tbname into outfile ‘/usr/local/tbname.sql’;
步驟四 將tbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的’轉換-ASCII到UTF-8(Unicode編輯)’,或者將文件另存為UTF-8(無BOM)格式
步驟五 在mysql命令行下執行語句 set character_set_database=utf8; 註:設置mysql的環境變量,這樣mysql在下一步讀取sql文件時將以utf8的形式去解釋該文件內容
步驟六 在mysql命令行下執行語句 load data infile ‘tbname.sql’ into table newdbname.tbname;
注意:千萬不要忘了第四步
如何對mysql中的字符進行編碼轉換
首先,到mysql\bin
下面,利用mysqldump這個工具,執行以下命令:
mysqldump
–u=root
-p
–default-character-set=latin1
–set-charset=utf8
–skip-opt
–result-file=c:\mytable.sql
mydb
mytable
其中:root
為數據庫登錄名,
latin1
為源表(就是想進行轉碼的表)的編碼,
utf8
為想轉換成的編碼,
c:\mytable.sql
為導出的數據的存放文件(臨時用),
mydb是源表所屬的數據庫(schema),mytable
就是源表名了
執行這條命令,會提示輸入密碼,輸入正確的密碼以後,就開始導出數據了。等到數據全部導出以後,可以用ue等工具打開,這時可以看到這些數據的編碼已經轉變了。
然後需要對這個文件進行一點點更改。在文件的最開頭有一個建表語句。類似於:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
‘0’,
`c2`
int(10)
unsigned
NOT
NULL
default
‘0’,
PRIMARY
KEY
(`tableid`)
);
注意看最後的分號,缺少了一點點東西:engine=myisam
DEFAULT
CHARSET=utf8
engine
和
charset
的意義地球人都知道啊…
將這一段加進去。結果可能是這樣:
Java代碼
CREATE
TABLE
`mytable`
(
`tableid`
bigint(20)
unsigned
NOT
NULL,
`c1`
int(10)
unsigned
NOT
NULL
default
‘0’,
`c2`
int(10)
unsigned
NOT
NULL
default
‘0’,
PRIMARY
KEY
(`tableid`)
)
engine=myisam
DEFAULT
CHARSET=utf8;
其中engine
和
charset
改成期望的東西,如:innodb
gbk
等…
保存文件。(如果是用UE等工具即使文件大也不會等太久,如果用記事本打開的……恭喜你!
)
這樣就成功了一半了,剩下的工作只需要導入這個轉好碼的數據了。
將原來的那個表改名,一是為了備份,二是防止導入的時候說表已經存在。
然後還是進入mysql\bin
下面,運行:
Java代碼
mysql
-u
root
-p
mydb
c:\mytable.sql
輸入密碼以後程序開始工作,一段時間以後,新表就出來咯…
mysqldouble和decimal轉換
1、首先double相減會轉換成二進制。
2、其次在計算中DEClMAL會轉換為DOUBLE類型。
3、最後可以指定浮點列所需要的精度即可。
如何解決MySQL表編碼轉換問題
法/步驟 將待導出的數據表的表結構導出(可以用Phpmyadmin、mysqldump等,很簡單就不說了),然後將導出的create table語句的CHARSET=latin1改為CHARSET=utf8,在目標庫newdbname中執行該create table語句把表結構建好,接下來開始導出-導入數據。命令: ./mysqldump -d DB_Dig /usr/local/tmp/tables.sql 命令行:進入mysql命令行下,mysql -hlocalhost -uroot -p*** dbname 執行SQL select * from tbname into outfile ‘/usr/local/tbname.sql’; 將tbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的’轉換-ASCII到UTF-8(Unicode編輯)’,或者將文件另存為UTF-8(無BOM)格式 在mysql命令行下執行語句 set character_set_database=utf8; 註:設置mysql的環境變量,這樣mysql在下一步讀取sql文件時將以utf8的形式去解釋該文件內容 6 在mysql命令行下執行語句 load data infile ‘tbname.sql’ into table newdbname.tbname;
原創文章,作者:XTTJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144272.html