扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
如果你正在运行一个比3.20.28旧的版本并且想要换到3.21.x,你需要做下列事情:
你能用safe_mysqld --old-protocol启动mysqld3.21服务器从3.20分发的客户使用它。在这种情况下,新客户函数mysql_errno()将不返回任何服务器错误,而仅仅是CR_UNKNOWN_ERROR(但是它为客户错误服务)并且服务器使用旧的passwd() 检查而非新的一个。
如果你在而不是对mysqld使用--old-protocol选项,你将需要做下列改变:
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()函数的参数。新参数是:host、database、user、password(user和password参数改变了位置)。见20.5.2 DBI接口。
下列变化可能影响到旧的应用程序的查询:
HAVING必须在任何ORDER BY子句前被指定。
LOCATE()参数被交换了。
DATE、TIME和TIMESTAMP。 如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。