日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...

發布時間:2025/4/16 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

mysql數據庫存儲引擎為MyISAM的時候,在大訪問量的情況下數據表有可能會出現被鎖的情況,這就會導致用戶連接網站時超時而返回502,此時就需要MySQL數據庫MyISAM存儲引擎轉為Innodb。

今天主要分享最近對某個數據庫做的數據遷移,其中包括存儲引擎轉換、數據庫編碼轉換。

思路:

1)導出舊數據庫表結構

2)修改引擎為innodb

3)導入舊數據庫表結構到新數據庫

4)非工作時間段停應用、導出舊數據庫數據(不導表結構)

5)導入舊數據庫數據(sql_mode調整)

6)調整新數據庫編碼為utf8mb4


1、導出CentOS數據庫的表結構和表數據

--導出表結構(-d參數表示不導出數據,只導出表結構)mysqldump -d -h xx.xx.xx -uroot -p zentao > zentao_table.sql--導出表數據(-t參數表示只導數據,不導表結構)mysqldump -t -h xx.xx.xx -uroot -p zentao > zentao_tabledata.sql

2、修改數據庫引擎

這里替換 zentao_table.sql里的MyISAM為INNODB

sed -i 's/MyISAM/INNODB/g' zentao_table.sql

3、新建數據庫centos_new,并導入表結構

--為了避免遷移由于編碼問題導致太多不穩定因素,先建為utf8mysql -uroot -p -e 'create database zentao default character set utf8;' mysql -uroot -p zentao < zentao_table.sql

導入后通過show table status來檢查表引擎是否為INNODB。


4、導入數據

這里導入數據時要注意sql_mode級別,有一些日期類型可能是0000-00-00格式,所以需去掉no_zero_date參數

最終sql_mode級別為:sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

mysql -uroot -p zentao < zentao_tabledata.sql

導入成功。


5、轉換數據庫編碼

這里的思路是:導出目的數據庫表結構sql-->手動修改sql編碼為utf8mb4-->導入中間數據庫(只存放修改后的表結構)-->從中間庫到目的數據庫做結構同步

遷移后應用連接,功能測試成功。


覺得有用的朋友多幫忙轉發哦!后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

總結

以上是生活随笔為你收集整理的mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。