亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle更換為MySQL遇到的問題及解決

 更新時間:2021年05月21日 11:51:02   作者:天臺上見  
前段時間自行安裝MySQL8.0數(shù)據(jù)庫,為數(shù)據(jù)庫去Oracle做準(zhǔn)備。現(xiàn)在公司正規(guī)劃搭建MySQL集群。于是挑選兩個應(yīng)用,進(jìn)行改造測試,積累下經(jīng)驗。

遷移工具

測試時,使用powerdesinger進(jìn)行表結(jié)構(gòu)轉(zhuǎn)換,使用Navicat進(jìn)行數(shù)據(jù)導(dǎo)入。 生產(chǎn)環(huán)境數(shù)據(jù)量較大,會由數(shù)據(jù)組同事選用其他工具進(jìn)行遷移,到時再行補充。

應(yīng)用改造

添加mysql8.0驅(qū)動包

使用mysql-connector-java-8.0.15.jar,如果是maven管理,直接添加依賴:

                <!--MySql 驅(qū)動 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.15</version>
			<scope>runtime</scope>
		</dependency>

修改數(shù)據(jù)源配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://host:ip/database?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=password

對象改造

  • 如果使用的hibernate,將配置文件中主鍵自增的序列刪除掉,在mysql中將主鍵設(shè)置為自增;或者為序列創(chuàng)建對應(yīng)函數(shù)。使用mysql集群的話,主鍵的生成方式還會有改動。
  • 逐條sql檢查,特別是mybatis中拼接的sql語句,包括:
    • 主鍵修改:序列sequence刪除,數(shù)據(jù)庫中主鍵改為自增;或創(chuàng)建對應(yīng)自增函數(shù)
    • 對涉及mysql關(guān)鍵字的字段進(jìn)行處理,使用``標(biāo)識
    • 日期格式處理
    • rownum條件查詢改為limit條件查詢

問題匯總

問題:本地遠(yuǎn)程連接mysql數(shù)據(jù)庫,報10060登錄異常

  • 出現(xiàn)該問題可能的原因:

1、網(wǎng)絡(luò)不通; 2、服務(wù)未啟動; 3、防火墻未關(guān)閉; 4、服務(wù)器上防火墻端口未開放; 5、端口未被監(jiān)聽; 6、權(quán)限不足。 我這里是排查發(fā)現(xiàn)測試數(shù)據(jù)庫服務(wù)器上3306端口未開放原因。

  • 解決方法:
sudo vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
sudo service iptables restart
sudo iptables -L -n

問題:Navicat 連接MySQL8出現(xiàn)2059錯誤

  • 原因:mysql8之前的版本中加密規(guī)則是mysql_native_password,而在mysql8之后,加密規(guī)則是caching_sha2_password
  • 解決辦法:更改加密規(guī)則
mysql -uroot -ppassword #登錄
use mysql; #選擇數(shù)據(jù)庫
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用戶密碼
FLUSH PRIVILEGES; #刷新權(quán)限

問題:使用Navicat遷移數(shù)據(jù)報錯 --> [Err] [Dtf] 1426 - Too-big precision 7 specified for 'TIME_CREATE'. Maximum is 6.

  • 原因:oracle的DATE類型是7位,而mysql的時間類型最多6位,所以無法導(dǎo)入。
  • 解決方法:將oracle庫中的DATE改為TIMESTAMP,同時長度改成6 (一定要把類型和長度都修改后才保存),即可導(dǎo)入。

問題:數(shù)據(jù)遷移中varchar字段插入報錯 --> Data too long for column 'DESIGNER' at row 1

  • 原因:Oracle與mysql采用不同的編碼集,導(dǎo)致即使相同的字符,存儲長度要求也不一樣(需進(jìn)一步深入了解)
  • 解決辦法:需要在msyql擴展字段長度

問題:SpringBoot連接mysql報錯--> Unknown system variable 'query_cache_size'

  • 原因:使用mysql驅(qū)動jar包版本過低,不兼容mysql8.0
  • 解決:使用mysql-connector-java-8.0.15.jar,驅(qū)動名換為com.mysql.cj.jdbc.Driver

問題:更改為mysql后,應(yīng)用前端頁面查詢中文顯示亂碼

  • 原因:從數(shù)據(jù)庫、服務(wù)器、頁面三個維度排查編碼格式
    • MySQL數(shù)據(jù)庫編碼格式排查
    • 服務(wù)器編碼格式排查
    • 前端頁面編碼格式排查

最終發(fā)現(xiàn),是在Navicat連接中,設(shè)置了編碼格式為utf-8,導(dǎo)致導(dǎo)入的數(shù)據(jù)在Navicat中看到是正常的,但數(shù)據(jù)庫中是亂碼,查詢結(jié)果也是亂碼。這個真的查了好久,沒注意到時工具的原因。。

  • 解決辦法:重新設(shè)置編碼格式,導(dǎo)入數(shù)據(jù),顯示正常

以上就是Oracle換為MySQL遇到的問題及解決的詳細(xì)內(nèi)容,更多關(guān)于Oracle換為MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mysql split函數(shù)用逗號分隔的實現(xiàn)

    mysql split函數(shù)用逗號分隔的實現(xiàn)

    這篇文章主要介紹了mysql split函數(shù)用逗號分隔的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 關(guān)于MYSQL的優(yōu)化全面詳解

    關(guān)于MYSQL的優(yōu)化全面詳解

    一直用了那么久的mysql,雖然了解了一些優(yōu)化方法,但是都是比較簡單的一些應(yīng)用,這次就系統(tǒng)的了解一下
    2012-09-09
  • 利用MySQL?Shell安裝部署MGR集群的詳細(xì)過程

    利用MySQL?Shell安裝部署MGR集群的詳細(xì)過程

    MySQL?Shell是一個客戶端工具,可用于方便管理和操作MySQL,支持SQL、JavaScript、Python等多種語言,也包括完善的API,本文介紹如何利用MySQL?Shell?+?GreatSQL?8.0.25構(gòu)建一個三節(jié)點的MGR集群,感興趣的朋友一起看看吧
    2022-02-02
  • MySQL需要關(guān)注的參數(shù)及狀態(tài)變量解讀

    MySQL需要關(guān)注的參數(shù)及狀態(tài)變量解讀

    這篇文章主要介紹了MySQL需要關(guān)注的參數(shù)及狀態(tài)變量解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Mysql索引類型與基本用法實例分析

    Mysql索引類型與基本用法實例分析

    這篇文章主要介紹了Mysql索引類型與基本用法,結(jié)合實例形式分析了Mysql索引類型中普通索引、唯一索引、主鍵索引、組合索引、全文索引基本概念、原理與使用方法,需要的朋友可以參考下
    2020-06-06
  • 講解Linux系統(tǒng)下如何自動備份MySQL數(shù)據(jù)的基本教程

    講解Linux系統(tǒng)下如何自動備份MySQL數(shù)據(jù)的基本教程

    這篇文章主要介紹了Linux系統(tǒng)下如何自動備份MySQL數(shù)據(jù)的基本教程,還給出了利用shell腳本全備份和增量備份的基本方法,需要的朋友可以參考下
    2015-11-11
  • MySQL 8.0 Online DDL快速加列的相關(guān)總結(jié)

    MySQL 8.0 Online DDL快速加列的相關(guān)總結(jié)

    在實際的MySQL運維過程中,我們經(jīng)常會遇到業(yè)務(wù)需要給某張表添加字段的情況,本文將介紹幾種加字段的方法,感興趣的朋友可以參考下
    2021-06-06
  • mysql-connector-java和mysql-connector-j的區(qū)別小結(jié)

    mysql-connector-java和mysql-connector-j的區(qū)別小結(jié)

    在Java項目中,引入MySQL數(shù)據(jù)庫通常需通過Maven管理MySQLConnector/J驅(qū)動,最新版本的spring-boot-starter-parent中,舊的mysql-connector-java坐標(biāo)不再適用,需改用新的com.mysql:mysql-connector-j,下面就來介紹一下區(qū)別,感興趣的可以了解一下
    2024-09-09
  • 如何優(yōu)雅、安全的關(guān)閉MySQL進(jìn)程

    如何優(yōu)雅、安全的關(guān)閉MySQL進(jìn)程

    這篇文章主要介紹了如何優(yōu)雅、安全的關(guān)閉MySQL進(jìn)程,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • 修改MySQL所有表的編碼或修改某個字段的編碼步驟詳解

    修改MySQL所有表的編碼或修改某個字段的編碼步驟詳解

    這篇文章主要給大家介紹了關(guān)于修改MySQL所有表的編碼或修改某個字段編碼的相關(guān)資料,在進(jìn)行數(shù)據(jù)庫編碼更改之前,需要先確定目標(biāo)編碼格式,常見的編碼格式有UTF-8、GBK等,需要的朋友可以參考下
    2023-12-12

最新評論