2022-10-27 372
MySQL 8.0的特性可谓强大,有一种集中火力的感觉,从整体的架构设计到功能和参数,可圈可点。
不过我今天从开发的角度来说一下困扰,毕竟那么新,那么强大,所谓的无缝,平滑还是需要经过全面测试,不能浮于纸面。
1:密码策略插件
MySQL 8.0开始将caching_sha2_password作为默认的身份验证插件。如果升级了数据库至8.0版本,对应用程序jdbc驱动兼容性不友好,让应用程序跑起来最快的方法需要将默认的caching_sha2_password改为之前的mysql_native_password。
比如:
ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'password';
也可以在参数中进行设置,修改my.cnf,重启服务即可生效:
default_authentication_plugin=mysql_native_password
2.JDBC驱动变更
如果从MySQL5.5升级到5.7,那么驱动的事情不用担心,但是到了8.0,JDBC的驱动就需要格外注意了,否则很可能有如下的错误。
Loading class `com.mysql.jdbc.Driver’. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
对于JDBC的url会有如下的变化:
StringUrl="jdbc:mysql://211.159.xxx:33071/maxwell_test?useUnicode=true&characterEncoding=utf-8";
需要调整为如下的格式:
StringUrl="jdbc:mysql://211.159.xxx:33071/maxwell_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT";
相应的加载驱动程序则需要
Class.forName("com.mysql.jdbc.Driver");
修改为:
Class.forName("com.mysql.cj.jdbc.Driver");
3.整数类型的长度警告
比如下面的表结构,通过workbench等工具导出来格式都差不多,但是在8.0里面执行的时候会报警。
CREATETABLE`data_payment_history_test`( `id`bigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'自增ID', `pid`int(11)unsignedNOTNULLDEFAULT'0'COMMENT'用户ID', 。。。 `cdate`datetimeNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间', 。。。 PRIMARYKEY(`id`), KEY`idx_credit_overdraw_history__pid`(`pid`) )ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8COMMENT='支付记录';
这里主要涉及两个警告,一个是整数类型的长度警告,另外一个是字符集警告,
展开来说,整数类型的长度警告信息为:Integer display width is deprecated and will be removed in a future,意思是int(11)这种写法已经过时了,应该直接写int,bigint
而字符集配置,在MySQL8.0里面默认是utf8mb4,如果我们手工写了utf8类型,会提示:’utf8′ is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
当然如果你设置的全局字符集是utf8,则无警告的情况字符集仍然为utf8.
4.windows安装版
windows安装版本一直提供的是32位的,这个是个历史遗留问题,如果有些同学为了方便,直接点点点,可能把线上环境部署成32位就尴尬了,oracle的windows版本路子相反,已经很早就直接舍弃了32位的版本。
原文链接:https://77isp.com/post/10170.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态