vim booktable.sql 修改所有l(wèi)atin1為utf8
3):確保數(shù)據(jù)庫(kù)不再更新,導(dǎo)出所有數(shù)據(jù)
mysqldump -uroot –p123456 --quick --no-create-info --extended-insert --default-character-set=latin1 book2>bookdata.sql
參數(shù)說(shuō)明:
--quick:用于轉(zhuǎn)儲(chǔ)大的表linux命令大全,強(qiáng)制mysqldump從服務(wù)器一次一行的檢索數(shù)據(jù)而不是檢索所有行,并輸出當(dāng)前cache到內(nèi)存中
--no-create-info:不要?jiǎng)?chuàng)建create table語(yǔ)句
--extended-insert:使用包括幾個(gè)values列表的多行insert語(yǔ)法,這樣文件更小,IO也小,導(dǎo)入數(shù)據(jù)時(shí)會(huì)非常快
--default-character-set=latin1:按照原有字符集導(dǎo)出數(shù)據(jù),這樣導(dǎo)出的文件中,所有中文都是可見(jiàn)的,不會(huì)保存成亂碼
4):打開(kāi)bookdata.sql 將SET NAME latin1 修改成SET NAME utf8
vim bookdata.sql
/*!40101 SET NAMES utf8 */;
5):重新建庫(kù)
mysql> create database book2 default charset utf8;
6):建立表,導(dǎo)入我們之前導(dǎo)出的表的數(shù)據(jù)庫(kù)
mysql –uroot –p123456 book <booktable.sql
7):導(dǎo)入數(shù)據(jù)
mysql -uroot -p123456 book2 <bookdata.sql
注意:選擇目標(biāo)字符集時(shí),要注意最好大于等于原字符集(字庫(kù)更大),否則可能會(huì)丟失不被支持的數(shù)據(jù)
二:MySQL日常維護(hù)1:mysqlcheckà mysql修復(fù)工具mysqlcheck客戶端工具可以檢查和修復(fù)MyISAM表,還可以優(yōu)化和分析表。
實(shí)際上,它集成了mysql工具中check、repair、analyze、tmpimize的功能。
/usr/local/mysql/bin/mysqlcheck #源碼編譯安裝位置
rpm -qf `which mysqlcheck` yum安裝查看
參數(shù)選項(xiàng):
mysqlcheck –-help 查看幫助
-c, --check (檢查表);
-r, --repair(修復(fù)表);
-a, --analyze (分析表);
-o, --tmpimize(優(yōu)化表); //其中,默認(rèn)選項(xiàng)是-c(檢查表)
-u, 使用mysql中哪個(gè)用戶進(jìn)行操作
Mysqlcheck使用語(yǔ)法:
使用以下3種方式來(lái)調(diào)用mysqlcheck:
mysqlcheck[tmpions] db_name [tables]
mysqlcheck[tmpions] ---database DB1 [DB2 DB3...]
mysqlcheck[tmpions] --all--database
如果沒(méi)有指定任何表或使用---database或--all--database選項(xiàng),則檢查整個(gè)數(shù)據(jù)庫(kù)。
舉例說(shuō)明:
1:檢查表(check)
mysqlcheck -uroot -p123456 -c book books
2:修復(fù)表(repair)
mysqlcheck -uroot -p123456 -r book books
3:修復(fù)指定的數(shù)據(jù)庫(kù)
mysqlcheck -uroot -p -r --database book
擴(kuò)展: 修復(fù)文件系統(tǒng)。 容易掉失數(shù)據(jù)