自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL 8.0給開發(fā)方向帶來的一些困擾

數(shù)據(jù)庫 MySQL
MySQL 8.0的特性可謂強(qiáng)大,有一種集中火力的感覺,從整體的架構(gòu)設(shè)計(jì)到功能和參數(shù),可圈可點(diǎn)。

[[346386]]

 MySQL 8.0的特性可謂強(qiáng)大,有一種集中火力的感覺,從整體的架構(gòu)設(shè)計(jì)到功能和參數(shù),可圈可點(diǎn)。

不過我今天從開發(fā)的角度來說一下困擾,畢竟那么新,那么強(qiáng)大,所謂的無縫,平滑還是需要經(jīng)過全面測試,不能浮于紙面。

1:密碼策略插件

MySQL 8.0開始將caching_sha2_password作為默認(rèn)的身份驗(yàn)證插件。如果升級了數(shù)據(jù)庫至8.0版本,對應(yīng)用程序jdbc驅(qū)動兼容性不友好,讓應(yīng)用程序跑起來最快的方法需要將默認(rèn)的caching_sha2_password改為之前的mysql_native_password。

比如:

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

也可以在參數(shù)中進(jìn)行設(shè)置,修改my.cnf,重啟服務(wù)即可生效:

  1. default_authentication_plugin=mysql_native_password 

2.JDBC驅(qū)動變更

如果從MySQL5.5升級到5.7,那么驅(qū)動的事情不用擔(dān)心,但是到了8.0,JDBC的驅(qū)動就需要格外注意了,否則很可能有如下的錯誤。

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會有如下的變化:

  1. String Url="jdbc:mysql://211.159.xxx:33071/maxwell_test?useUnicode=true&characterEncoding=utf-8"

需要調(diào)整為如下的格式:

  1. String Url="jdbc:mysql://211.159.xxx:33071/maxwell_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT"

相應(yīng)的加載驅(qū)動程序則需要

  1. Class.forName("com.mysql.jdbc.Driver"); 

修改為:

  1. Class.forName("com.mysql.cj.jdbc.Driver"); 

3.整數(shù)類型的長度警告

比如下面的表結(jié)構(gòu),通過workbench等工具導(dǎo)出來格式都差不多,但是在8.0里面執(zhí)行的時候會報警。

  1. CREATE TABLE `data_payment_history_test` ( 
  2.   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID'
  3.   `pid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用戶ID'
  4. 。。。 
  5.   `cdate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間'
  6.   。。。 
  7.   PRIMARY KEY (`id`), 
  8.   KEY `idx_credit_overdraw_history__pid` (`pid`) 
  9. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='支付記錄'

這里主要涉及兩個警告,一個是整數(shù)類型的長度警告,另外一個是字符集警告,

展開來說,整數(shù)類型的長度警告信息為:Integer display width is deprecated and will be removed in a future,意思是int(11)這種寫法已經(jīng)過時了,應(yīng)該直接寫int,bigint

而字符集配置,在MySQL8.0里面默認(rèn)是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.

當(dāng)然如果你設(shè)置的全局字符集是utf8,則無警告的情況字符集仍然為utf8.

4.windows安裝版

windows安裝版本一直提供的是32位的,這個是個歷史遺留問題,如果有些同學(xué)為了方便,直接點(diǎn)點(diǎn)點(diǎn),可能把線上環(huán)境部署成32位就尷尬了,oracle的windows版本路子相反,已經(jīng)很早就直接舍棄了32位的版本。

本文轉(zhuǎn)載自微信公眾號「楊建榮的學(xué)習(xí)筆記」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系楊建榮的學(xué)習(xí)筆記公眾號。

 

責(zé)任編輯:武曉燕 來源: 楊建榮的學(xué)習(xí)筆記
相關(guān)推薦

2017-11-29 18:52:13

Python新手編碼建議

2013-07-29 09:36:05

100G傳輸100G

2021-06-08 06:13:16

React開發(fā)開發(fā)技術(shù)

2016-11-11 20:33:53

Hadoop大數(shù)據(jù)云計(jì)算

2023-11-10 08:48:09

Lombok庫Java8

2009-07-09 13:16:54

Java Swing開

2021-12-15 11:30:04

無人駕駛智能技術(shù)

2011-11-28 15:57:26

MySQL數(shù)據(jù)庫主從配置

2021-06-30 07:19:35

微服務(wù)業(yè)務(wù)MySQL

2018-06-21 15:23:36

2013-04-28 09:44:44

2010-11-02 14:11:15

SilverlightWPF微軟開發(fā)

2015-08-27 10:49:43

JavaScript開發(fā)框架

2015-07-28 14:39:02

IOS技巧

2018-02-06 11:10:27

iOS開發(fā)Xcode快捷鍵

2025-01-15 09:00:20

2011-10-11 17:10:35

MySQL

2017-10-16 14:40:50

數(shù)據(jù)庫MySQL工具

2009-12-30 15:18:32

2017-05-02 21:08:35

開發(fā)架構(gòu)工程師
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號