最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL異常宕機(jī)無(wú)法啟動(dòng)的處理過(guò)程

 更新時(shí)間:2024年08月15日 09:23:25   作者:hh真是個(gè)慢性子  
MySQL宕機(jī)是指MySQL數(shù)據(jù)庫(kù)服務(wù)突然停止運(yùn)行,通??赡苁怯捎谟布收?、軟件錯(cuò)誤、資源耗盡、網(wǎng)絡(luò)中斷、配置問(wèn)題或是惡意攻擊等導(dǎo)致,當(dāng)MySQL發(fā)生宕機(jī)時(shí),系統(tǒng)可能無(wú)法提供數(shù)據(jù)訪問(wèn),本文給大家介紹了MySQL異常宕機(jī)無(wú)法啟動(dòng)的處理過(guò)程,需要的朋友可以參考下

環(huán)境

  • oom異常關(guān)閉導(dǎo)致 MySQL5.7 啟動(dòng)失敗。

同事導(dǎo)入數(shù)據(jù)時(shí)異常關(guān)閉,應(yīng)該是數(shù)據(jù)量太大導(dǎo)致mysql崩潰,嘗試重啟失敗了提示如下:

Database was not shutdown normally!
2021-02-26T21:33:29.691452+08:00 0 [Note] InnoDB: Starting crash recovery.
2021-02-26T21:33:30.287496+08:00 0 [Note] InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12  #進(jìn)度到這里自動(dòng)退出了

配置文件修改參數(shù) innodb_force_recovery = 1 ---->將0 修改為1 ---->沒(méi)有設(shè)置的可以在mysqld下添加參數(shù)

注解:

innodb_force_recovery可以是設(shè)置1-6,數(shù)字大的包含數(shù)字小的功能,所以我們要從1開(kāi)始設(shè)置來(lái)嘗試啟動(dòng)mysql
innodb_force_recovery=0,關(guān)閉恢復(fù)功能 正常啟動(dòng)
innodb_force_recovery=1,即使發(fā)現(xiàn)了損壞頁(yè)面也繼續(xù)讓服務(wù)器繼續(xù)運(yùn)行,這個(gè)選項(xiàng)對(duì)于備份或者轉(zhuǎn)存當(dāng)前數(shù)據(jù)尤為有用
innodb_force_recovery=2,阻止恢復(fù)主線程的運(yùn)行,如果清除操作會(huì)導(dǎo)致服務(wù)器掛掉
innodb_force_recovery=3,恢復(fù)后不回滾事務(wù)
innodb_force_recovery=4,如果插入到緩沖區(qū)的合并操作會(huì)導(dǎo)致系統(tǒng)崩潰,將不會(huì)被執(zhí)行
innodb_force_recovery=5,啟動(dòng)數(shù)據(jù)庫(kù)時(shí),忽略撤消日志
innodb_force_recovery=6,啟動(dòng)數(shù)據(jù)庫(kù)時(shí),忽略與恢復(fù)相關(guān)的前滾日志

配置恢復(fù)

配置完成后重洗啟動(dòng)數(shù)據(jù)庫(kù)

#先打開(kāi)日志
[root@db02 ~]# tail -f /mydata/3306/log/mysql-error.log

#啟動(dòng)了很久顯示失敗
[root@db02 ~]# /etc/init.d/mysqld restart 
 ERROR! MySQL server PID file could not be found!
Starting MySQL.................................................................................................................................... ERROR! The server quit without updating PID file (/mydata/3306/data/db02.pid).

#查看日志顯示已經(jīng)恢復(fù)到百分之百了
2021-02-26T21:40:27.983238+08:00 0 [Note] InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 2021-02-26T21:41:26.220425+08:00 0 [ERROR] InnoDB: Waited for 10 seconds for 256 pending reads
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99


#再往下翻翻發(fā)現(xiàn)錯(cuò)誤點(diǎn)----->是因?yàn)閱⒂昧嘶謴?fù)時(shí)啟用了 innodb_force_recovery 參數(shù)
2021-02-26T21:42:11.303902+08:00 0 [ERROR] InnoDB: innodb_force_recovery is on. We do not allow database modifications by the user. Shut down mysqld and edit my.cnf to set innodb_force_recovery=0
mysqld: Operation not allowed when innodb_forced_recovery > 0.
2021-02-26T21:42:11.306255+08:00 0 [ERROR] Aborting

關(guān)閉此參數(shù)

#關(guān)閉innodb_force_recovery 參數(shù)
[root@db02 ~]# vim /etc/my.cnf
innodb_force_recovery = 0

啟動(dòng)數(shù)據(jù)庫(kù)

[root@db02 ~]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!

注:
到這里數(shù)據(jù)庫(kù)就起來(lái)了,如果配置為1無(wú)法啟動(dòng)數(shù)據(jù)庫(kù)可以在往后注意嘗試,直到可以啟動(dòng)為止。

檢查是否有損壞的表

配置跳過(guò)表和網(wǎng)絡(luò)啟動(dòng)

mysqld_safe --skip-grant-tables --skip-networking &

檢查是否啟動(dòng)

ps -ef|grep mysql

打開(kāi)日志觀察是否有損壞的表

tail -f /mydata/3306/log/err.log

檢查損壞的表并嘗試修復(fù)

mysqlcheck -A   --auto-repair  -uroot -p -A

如損壞的表過(guò)多則重新初始化數(shù)據(jù)庫(kù),初始化前先備份

沒(méi)有損壞的表可以繼續(xù)使用當(dāng)前實(shí)例運(yùn)行。

壞表處理

備份數(shù)據(jù)庫(kù)

mysqldump -uroot -p -A  -R -E --triggers  >/tmp/dump.sql

創(chuàng)建新的初始化目錄

mkdir /mydata/3306/data_new

授權(quán)

chown -R mysql:mysql  /mydata/3306/data_new

修改my.cnf

vim /etc/my.cnf
datadir=/mydata/3306/data_new  # 改為新的
# skip_grant_tables  # 注釋此選項(xiàng)
# innodb_force_recovery  # 注釋此選項(xiàng)

初始化mysql

mysqld  --initialize-insecure   --basedir=/mysql/mysql57  --datadir=/mydata/3306/data_new

關(guān)閉舊 mysql

pkill mysql

啟動(dòng)mysql

/etc/init.d/mysqld start  # 這個(gè)文件里要改成新的數(shù)據(jù)目錄名去啟動(dòng)

注:如果報(bào)socket錯(cuò)誤可以做個(gè)軟連接或者改配置文件即可。

連接mysql

mysql -uroot -p 

將備份導(dǎo)入到新庫(kù)

source /tmp/dump.sql
或者
mysql < /tmp/dump.sql

檢查數(shù)據(jù)

此時(shí)已經(jīng)恢復(fù)完成,可以將MySQL停止,將舊數(shù)據(jù)目錄和新數(shù)據(jù)目錄重命名回去,修改配置文件,以恢復(fù)原狀。

優(yōu)化系統(tǒng)和 MySQL 配置優(yōu)化

系統(tǒng)配置優(yōu)化

cat >/etc/sysctl.conf<<'EOF'
vm.swappiness=0          # 減少 swap 分區(qū)使用
vm.overcommit_memory = 1 # 允許所有內(nèi)存分配
EOF

# 生效
sysctl -p

MySQL 配置優(yōu)化

# 配置文件永久修改
vim /etc/my.cnf
innodb_buffer_pool_size = 2G  # 將緩沖池配置為系統(tǒng)當(dāng)前可用內(nèi)存的 3/4

# 命令行臨時(shí)修改
set global innodb_buffer_pool_size=(select 2*1024*1024*1024);  

以上就是MySQL異常宕機(jī)無(wú)法啟動(dòng)的處理過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于MySQL宕機(jī)無(wú)法啟動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL設(shè)置表自增步長(zhǎng)的方法

    MySQL設(shè)置表自增步長(zhǎng)的方法

    自增字段是一種常見(jiàn)且重要的功能,通常用于生成唯一的標(biāo)識(shí)符,本文主要介紹了MySQL設(shè)置表自增步長(zhǎng)的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • MySQL中使用CTE獲取時(shí)間段數(shù)據(jù)的技巧分享

    MySQL中使用CTE獲取時(shí)間段數(shù)據(jù)的技巧分享

    在數(shù)據(jù)庫(kù)操作中,獲取特定時(shí)間段的數(shù)據(jù)是一項(xiàng)常見(jiàn)任務(wù),MySQL自從8.0版本開(kāi)始支持CTE(公共表表達(dá)式),使得我們可以更加靈活和高效地處理時(shí)間段數(shù)據(jù),本文小編介紹了MySQL中使用CTE獲取時(shí)間段數(shù)據(jù)的技巧分享,需要的朋友可以參考下
    2024-08-08
  • Ubuntu18.0.4下mysql 8.0.20 安裝配置方法圖文教程

    Ubuntu18.0.4下mysql 8.0.20 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Ubuntu18.0.4下mysql 8.0.19 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Mysql內(nèi)置函數(shù)的實(shí)現(xiàn)示例

    Mysql內(nèi)置函數(shù)的實(shí)現(xiàn)示例

    mysql內(nèi)置了很多的函數(shù),本文主要介紹了Mysql內(nèi)置函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • MySQL數(shù)據(jù)表基本操作實(shí)例詳解

    MySQL數(shù)據(jù)表基本操作實(shí)例詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)表基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL針對(duì)數(shù)據(jù)表的基本創(chuàng)建、表結(jié)構(gòu)查看、修改、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • MySQL使用聚合函數(shù)進(jìn)行單表查詢

    MySQL使用聚合函數(shù)進(jìn)行單表查詢

    這篇文章主要介紹了MySQL使用聚合函數(shù)進(jìn)行單表查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Centos5.5中安裝Mysql5.5過(guò)程分享

    Centos5.5中安裝Mysql5.5過(guò)程分享

    這篇文章主要介紹了Centos5.5中安裝Mysql5.5過(guò)程分享,本文使用編譯方法安裝MySQL,并給出了一些可能遇到的錯(cuò)誤和解決方法,需要的朋友可以參考下
    2015-01-01
  • MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤

    關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤

    這篇文章主要介紹了關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤,字符串出現(xiàn)e時(shí)所產(chǎn)生的問(wèn)題也被作為MySQL的bug進(jìn)行過(guò)提交,需要的朋友可以參考下
    2015-05-05
  • 深入理解Mysql的四種隔離級(jí)別

    深入理解Mysql的四種隔離級(jí)別

    開(kāi)發(fā)工作中我們會(huì)使用到事務(wù),那你們知道事務(wù)又分哪幾種嗎?MYSQL標(biāo)準(zhǔn)定義了4類隔離級(jí)別,用來(lái)限定事務(wù)內(nèi)外的哪些改變是可見(jiàn)的,哪些是不可見(jiàn)的。低的隔離級(jí)一般支持更高的并發(fā)處理,并擁有更低的系統(tǒng)開(kāi)銷(xiāo)。下面通過(guò)這篇文章我們來(lái)一起深入理解Mysql中的四種隔離級(jí)別。
    2016-11-11

最新評(píng)論

旅游| 花莲县| 合作市| 溧阳市| 安义县| 丁青县| 岫岩| 乌什县| 陕西省| 天全县| 临西县| 西和县| 衡南县| 长宁区| 绥化市| 德令哈市| 新源县| 石门县| 博客| 马山县| 新河县| 遂川县| 安康市| 高安市| 广汉市| 上杭县| 临沧市| 永城市| 抚宁县| 清丰县| 黄平县| 乌鲁木齐市| 陕西省| 龙岩市| 扶绥县| 汽车| 两当县| 教育| 高清| 耿马| 黄骅市|