TA的每日心情 | 奋斗 2021-8-16 14:04 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
4#
楼主 |
发表于 2018-6-12 16:05:46
|
只看该作者
解决方法编辑
MySQL 中文排序错误的解决方法
方法1
在 MySQL 数据库中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在 My
SQL 的很多版本中都存在。如果这个问题不解决,那么 MySQL 将无法实际处理中文。
出现这个问题的原因是:MySQL 在查询字符串时是大小写不敏感的,在编绎 MySQL 时一般以 ISO-8859
字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是
对于包含中文的字段加上 "binary" 属性,使之作为二进制比较,例如将 "name char(10)" 改成 "name ch
ar(10)binary"。
方法2
如果你使用源码编译 MySQL,可以编译 MySQL 时使用 --with--charset=gbk 参数,这样 MySQL 就会直接
支持中文查找和排序了。[5]
授权问题编辑
授权协议
MySQL 遵守的不只是 GPL 协议,而是双授权模式(dual license)[10] 即你在遵守 GPL 协议的开源项目
使用 MySQL,需要遵守 GPL 协议方能使用。如果你在非开源项目使用(即软件不打算开放源代码),且
该软件用来销售,则需要向 MySQL 支付相应 license 费用。[11]
文件手册bug
在 5.5.31 版本时人们发现 Oracle 取消了其中的 GPL 协议,造成了一定的不安。有开发者在 MySQL 程序
臭虫网站上举报这项授权错误问题,随即 MySQL 工程服务总监 Yngve Svendsen 在网站上坦言,这的确是
一个文件臭虫,因为 man 手册程序重新编译时套用了错误的授权内容。[12] 不过仍然有人认为,Oracle
取消开源授权改采商业授权的“这一天迟早是要到来的”,并寻求其他代替方案。[13]
安装 MySQL 5.5编辑
1、运行 mysql 安装文件;
2、按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)
",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部
分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;
3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Progra
m Files\MySQL Server 5.5\"。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql in
stance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Confi
guration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;
4、选择服务器类型,"Developer Machine(开发测试类,mysql占用很少资源)"、"Server Machine(服
务器类型,mysql占用较多资源)"、"DedicatedMySQL Server Machine(专门的数据库服务器,mysql占用
所有可用资源)",根据自己的类型选择,测试软件选"Developer Machine",服务器选"Server Machine",
下一步;
5、选择创建 MySQL表时使用的表处理器,"Multifunctional Database"(通用多功能型,好,同时使用Inno
DB和 MyISAM 储存引擎)、"Transactional Database Only"(服务器类型,专注于事务处理,主要使用 In
noDB 只偶尔使用 MyISAM,一般)、"Non-Transactional DatabaseOnly"(非事务处理型,较简单,完全
禁用 InnoDB 储存引擎,将所有服务器资源指派给 MyISAM 储存引擎),随自己的用途而选择。[14]
替代方案编辑
随着 MySQL 被 Oracle 收购,MySQL 的用户和开发者开始质疑开源数据库的命运,与此同时他们开始寻
找替代品。
有文章写到了放弃 MySQL 的五大理由:[15]
MySQL 不如其它关系型数据库管理系统那样成熟;
MySQL 是开源的...但只有近似而已;
MySQL 的性能无法与竞争对手相提并论;
MySQL 是 Oracle 所有的,而不是社区驱动的;
越来越多的强劲对手。
MariaDB
从 MySQL 转向 MariaDB的代表厂家:谷歌(2013年9月)、RedHat(2013年6月)、维基百科(2013年4月)
MySQL 在 2008 年被Sun以10亿美金所收购,MySQL 创始人 Michael Widenius 则不满 Sun 开发团队脚步
过慢,愤而离职成立开源数据库联盟,另外从现有 MySQL 程序代码中,开发出另一个延伸分支版本,也
就是名为玛莉亚数据库的企业级开源数据库[13] 。
玛莉亚数据库如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍
生版本(folk),提供的功能可和 MySQL 完全兼容。
PostgreSQL
从 MySQL 转向 PostgreSQL的代表厂家:苹果(2011年)
PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统)。PostgreSQL支持大部分 SQL标准并
且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQ
L 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语
言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管
是私用、商用、还是学术研究使用。
PostgreSQL 也受 NoSQL 思想的启发,希望能够在今后可以给使用者更多可定制可调节的功能(不是说
这个成熟的关系性数据库系统要向 NoSQL 转变)。
NoSQL
NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,是一项全新的数据库革命性运动。NoSQL指的
是非关系型的数据库。随着互联网 web2.0网站的兴起,传统的关系数据库在应付 web2.0 网站,特别
是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问
题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
其代表的开源软件如:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。
Oracle 免费版
Oracle自 Oracle 10g 后推出对应的免费版。
远程访问 MySQL编辑
1:将 localhost 改成 "%"
修改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改成"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;
2:使用 myuser/mypassword 从任何主机连接到 mysql 服务器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
3:泛授权
mysql -h localhost -u root
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //赋予任何主机上以root
身份访问数据的权限
mysql>FLUSH PRIVILEGES;[16]
MySQL Server 新特性编辑
表和索引的分区
行级复制
MySQL 基群基于磁盘的数据支持
MySQL 集群复制
增强的全文本搜索函数
增强的信息模式(数据字典)
可插入的 API
服务器日志表
XML(标准通用标记语言的子集)/ XPath支持
实例管理器
表空间备份
mysql_upgrade 升级程序
内部任务/事件调度器
新的性能工具和选项如 mysqlslap[3]
MySQL PHP 语法
MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP。 在这些语言中,MySQL 在 PHP 的 web
开发中是应用最广泛。
在本教程中我们大部分实例都采用了PHP语言。如果你想了解 MySQL 在 PHP 中的应用,可以访问我们
的PHP 中使用 MySQL 介绍。
PHP 提供了多种方式来访问和操作 MySQL 数据库记录。PHP MySQL 函数格式如下:
mysql_function(value,value,...);
以上格式中function部分描述了mysql函数的功能,如
mysqli_connect($connect);
mysqli_query($connect,"SQLstatement");
mysql_fetch_array()
mysql_connect(),mysql_close() |
|