|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。体系自带的MySQL默许字符集不是gbk,因而给数据库的推行使用和中文程序的开辟带来极年夜的方便,在没完没了的GBK和UTF8的转换过程当中损耗了我们有数的精神和体系的资本。经由探索实验办理了中文撑持成绩,履历与人人分享一下。
先将让slack撑持中文,办法能够看“linuxsir.org之Slackware会商区”,然后从头编译MySQL,本来体系MySQL的要先用卸载。
以下为援用的内容:
login:root
shell>removepkgmysql
shell>groupaddmysql
shell>cd/app
shell>mkdirmysql
shell>chmod744mysql
shell>useradd-Gmysql-s/bin/bash–p/app/mysqlmysql
shell>chown-Rmysql.mysqlmysql
下载MySQL4.x.x:
shell>gunzip<mysql-VERSION.tar.gz|tar-xvf-
shell>cdmysql-VERSION
shell>CFLAGS="-O3-mcpu=pentium3"
CXX=gcc
XXFLAGS="-O3-mcpu=pentium3-felide-constructors"
./configure--prefix=/app/mysql
--with--charset=gbk
--with-extra-charsets="gbkgb2312big5utf8"
--with-unix-socket-path=/etc/mysql.sock
--enable-local-infile
--enable-thread-safe-client
--enable-assembler
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
//-mcpu依据CPU范例优化编译,可让你的MySQL体现更好!
可选项目良多:i386,i486,i586,i686,pentium,
pentium-mmx,pentiumpro,pentium2,pentium3,pentium4,
k6,k6-2,k6-3,athlon,athlon-tbird,athlon-4,
athlon-xp,athlon-mp,winchip-c6,winchip2,c3
shell>make
------------------------------------------
毛病时分
shell>makeclean
再回上一步
---------------------------------------
shell>makeinstall
shell>cpsupport-files/my-medium.cnf/etc/my.cnf
shell>cd/app/mysql
shell>bin/mysql_install_db--user=root
shell>chown-Rroot.
shell>chown-Rmysqlvar
shell>chgrp-Rmysql.
shell>./bin/mysqld_safe--user=root
--default-character-set=gbk&
shell>./bin/mysqladmin-urootpasswordnew-password
shell>./bin/mysql-uroot--default-character-set=gbk-p
mysql>status
...
Servercharacterset:gbk
Dbcharacterset:gbk
Clientcharacterset:gbk
Conn.characterset:gbk
....
瞥见characterset满是gbk就算乐成了。
在UTF8字符集的老数据库中,创立中文撑持表剧本以下,对字段加上字符集申明:
CREATETABLE`test`.`cn`(
`zh`CHAR(10)CHARACTERSETgb2312COLLATEgb2312_chinese_ciNOTNULL,
`中文`INT(11)NOTNULL
)
ENGINE=MYISAM;
注:CHARACTERSET写GB2312和gbk都能够,gbk优于gb2312。
关于新创立的数据库加个默许字符集声明GBK,就不必建表时分每一个字段声了然,如许看起来复杂流利,没有特别的陈迹,倡议多接纳这类办法。
mysql>CREATEDATABASEdbCNDEFAULTCHARACTERSET
gbkCOLLATEgbk_chinese_ci;
CREATETABLE`dbCN`.`cn`(
`zh`CHAR(10)NOTNULL,
`中文`INT(11)NOTNULL
)
ENGINE=MYISAM;
mysql>insertintocnvalues("真的?",1);
注:假如这些剧本用bin/MySQL命令行是输出不了,能够用MySQLqueryBrowser,大概编程实行。
----------------------------------------------
shell>bin/mysql-uroot--default-character-set=gbk-p
mysql>usetest
mysql>select*fromcn;
+--------+------+
|zh|中文|
+--------+------+
|真的?|1|
+--------+------+
1rowinset(0.00sec)
---------------------------------------------
最初修正启动文件/etc/rc.d/rc.mysqld,改路径/app/mysql/bin/mysqld_safe,改路径/app/mysql/var/web.pid/app/mysql/bin/mysqld_safe前面到场--user=root--default-character-set=gbk。
BDB源自BerkeleyDB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性 |
|