您的位置:软件首页 / 数据库 / 4.16.3 从一个3.20版本升级到3.21

4.16.3 从一个3.20版本升级到3.21

ZDNet 软件频道 更新时间:2008-01-22 作者:天极软件 来源:天极软件

本文关键词:升级 版本 MySQL MySQL数据库

如果你正在运行一个比3.20.28旧的版本并且想要换到3.21.x,你需要做下列事情:

你能用safe_mysqld --old-protocol启动mysqld3.21服务器从3.20分发的客户使用它。在这种情况下,新客户函数mysql_errno()将不返回任何服务器错误,而仅仅是CR_UNKNOWN_ERROR(但是它为客户错误服务)并且服务器使用旧的passwd() 检查而非新的一个。

如果你在而不是mysqld使用--old-protocol选项,你将需要做下列改变:

  • 所有的客户代码必须重新编译。如果你正在使用ODBC,你必须得到新的MyODBC 2.x驱动程序。
  • 脚本scripts/add_long_password必须运行以便变换在mysql.user表中的Password字段为CHAR(16)
  • 所有在mysql.user中的口令必须被重新赋值(为了得到62位而非31位口令)。
  • 表格式没变化,因此你不必须变换任何表。

MySQL3.20.28和以上版本可以处理新的user表格式而不影响客户。如果你有一个比3.20.28早的MySQL版本,如果你变换user表,口令将不再与之工作。因此为了安全,你首先应该升级到至少3.20.28并且然后升级到3.21.x。

新的客户代码可与一个3.20.x 版的mysqld服务器一起工作,因此如果你遇到3.21.x的问题,你可以使用旧的3.20.x服务器而无须重新编译客户。

如果你对mysqld不使用--old-protocol选项,旧的客户将发出错误消息:

ERROR: Protocol mismatch. Server Version = 10 Client Version = 9

新的Perl DBI/DBD接口也支持旧的mysqlperl接口。如果你使用mysqlperl,你必须做的唯一改变是改变到connect()函数的参数。新参数是:hostdatabaseuserpassworduserpassword参数改变了位置)。见20.5.2 DBI接口

下列变化可能影响到旧的应用程序的查询:

  • 现在HAVING必须在任何ORDER BY子句前被指定。
  • LOCATE()参数被交换了。
  • 有一些新的保留字。最著名是DATETIMETIMESTAMP

用户评论

  • 用户名
  • 评论内容
技术关注
当前技术类目:
MySQL本类技术关注比例:
12软件关注排行:121
22企业级技术关注度:22--

MySQL技术相关文章:

文章类型收录数量
3 MySQL的解决方案:
3 MySQL的相关产品:

软件频道 升级 最新报道

软件频道 版本 最新报道

软件频道 MySQL 最新报道

软件频道 MySQL数据库 最新报道

爱卡汽车网 | CNET科技资讯网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | 开发者在线 | PChome | Solidot | SPN |
投影顾问网 | 万维家电网 | 网友世界 | 西域IT | ZDNet China | 中关村在线 | 中小企业成长网
CNET Networks
Copyright © 1997-2007 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号