第二个灵魂 发表于 2015-1-16 22:18:09

MSSQL网页编程之让你的MySQL数据库完全与中文攀亲

这章描述如何检查和处理在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等其他事务特性

第二个灵魂 发表于 2015-1-19 07:08:46

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

小魔女 发表于 2015-2-5 08:38:54

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

愤怒的大鸟 发表于 2015-2-11 08:18:53

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

小女巫 发表于 2015-3-2 02:14:29

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

透明 发表于 2015-3-17 19:08:19

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

飘灵儿 发表于 2015-3-24 21:05:29

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
页: [1]
查看完整版本: MSSQL网页编程之让你的MySQL数据库完全与中文攀亲