仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 884|回复: 6
打印 上一主题 下一主题

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

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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等其他事务特性
第二个灵魂 该用户已被删除
沙发
 楼主| 发表于 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的数据,是否会出现大规模的碎片?
小女巫 该用户已被删除
5#
发表于 2015-3-2 02:14:29 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
透明 该用户已被删除
6#
发表于 2015-3-17 19:08:19 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
飘灵儿 该用户已被删除
7#
发表于 2015-3-24 21:05:29 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 18:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表