扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
如果你正在运行一个比3.20.28旧的版本并且想要换到3.21.x,你需要做下列事情:
你能用safe_mysqld --old-protocol
启动mysqld
3.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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者