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

MySQL 啟動失敗的常見原因

數(shù)據(jù)庫 MySQL
專注于 Oracle、MySQL 數(shù)據(jù)庫多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP?,F(xiàn)在鼎甲科技任技術(shù)顧問,為同事和客戶提供數(shù)據(jù)庫培訓(xùn)和技術(shù)支持服務(wù)。

 MySQL 啟動失敗的最常見的原因有兩類,分別是無法訪問系統(tǒng)資源和參數(shù)設(shè)置錯誤造成的,下面分別分析如下。

[[351343]]

一、無法訪問系統(tǒng)資源

MySQL 不能訪問啟動需要的資源是造成而 MySQL 無法啟動的一個常見原因,如:文件,端口等。由于 linux 中用于啟動 mysqld 進(jìn)程的 mysql 用戶通常是不能登陸的,可以使用類似下面的命令檢查文件的訪問權(quán)限。

 

  1. sudo -u mysql touch /var/lib/mysql/b 

找出問題后,修改對應(yīng)文件或目錄的權(quán)限或?qū)僦骱笸ǔ?梢越鉀Q問題。但有時 mysql 用戶有訪問文件和目錄的權(quán)限,但仍然會被拒絕訪問,例如下面這個例子:

  1. mysql> system sudo -u mysql touch  /home/mysql/data/a 
  2. mysql> create table t1 ( 
  3.     id int primary key,n varchar(10 
  4.     ) data directory 
  5. ERROR 1030 (HY000): Got error 168 from storage engine 

 

測試說明 mysql 用戶有這個目錄的訪問權(quán)限,但創(chuàng)建文件還是失敗,這種情況讓很多人困惑,這個時候通常是 mysqld 進(jìn)程的訪問被 linux 的 selinux 或 apparmor 給阻止了,大家可以看到創(chuàng)建的表不是在 mysql 的默認(rèn)目錄下面,因此 selinux 或 apparmor 的 policy 里面沒有包含這個目錄的訪問權(quán)限,此時只要對應(yīng)的修改 policy 就行了,當(dāng)然把 selinux 或 apparmor 停了也行。

有時雖然對系統(tǒng)資源有訪問的權(quán)限,但系統(tǒng)資源已經(jīng)被占用:

 

  1. mysqld --no-defaults --console --user mysql 
  2. 2020-11-03T03:36:07.519419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 21171 
  3. 2020-11-03T03:36:07.740347Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11 

 

這個故障產(chǎn)生的原因是另外一個 mysqld 進(jìn)程已經(jīng)啟動并占用了對應(yīng)的文件。

二、參數(shù)設(shè)置錯誤

參數(shù)設(shè)置錯誤造成 MySQL 無法啟動的原因也非常常見,此時先要檢查 MySQL 啟動時會調(diào)用的參數(shù),下面的命令可以查詢 MySQL 啟動時調(diào)用參數(shù)文件的順序:

 

  1. $ mysqld --verbose --help | grep "Default options "  -A 1 
  2. Default options are read from the following files in the given order
  3. /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 

 

知道了 MySQL 參數(shù)文件的調(diào)用順序,我們就可以檢查對應(yīng)的參數(shù)文件,找出其中的錯誤,如果覺得參數(shù)文件的可讀性不強,可以使用下面的命令顯示 mysqld 程序?qū)⒁{(diào)用的參數(shù):

 

  1. $ mysqld --print-defaults 
  2. /usr/sbin/mysqld would have been started with the following arguments: 
  3. ...... 

 

注意這個命令顯示完參數(shù)后就退出,不會真正運行 mysqld。這個命令和 my_print_defaults mysqld 完全是等價的,只不過后者的顯示方式是一行一個參數(shù)。

然后開始對可疑的參數(shù)進(jìn)行調(diào)試,我個人喜歡加的參數(shù)和順序如下:

1. 在 mysqld 后加上第一個參數(shù) --no-defaults ,這個參數(shù)的作用是通知 mysqld 在啟動的時候不要讀任何參數(shù)文件;

2. 第二個參數(shù)是 --console,這個參數(shù)會把錯誤信息輸出到屏幕上,這個參數(shù)帶來的一個弊端是所有的信息都輸出到屏幕上,讓屏幕顯得比較亂,但對于我們調(diào)試卻是很方便的;

3. 第三個參數(shù)是 --log-error-verbosity=3,這個參數(shù)會顯示詳細(xì)的日志;

4. 然后再在后面加上有把握的參數(shù),可以一次只加一個參數(shù),然后啟動 mysqld,采用排除法逐步找出錯誤的參數(shù)。

看這個例子:

 

  1. mysqld --no-defaults --console  --log-error-verbosity=3 --user mysql --gtid_mode=on 
  2. 2020-11-03T07:14:20.384223Z 0 [Note] [MY-010949] [Server] Basedir set to /usr/. 
  3. 2020-11-03T07:14:20.384254Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 22617 
  4. 2020-11-03T07:14:20.400221Z 0 [Note] [MY-012366] [InnoDB] Using Linux native AIO 
  5. …… 
  6. 2020-11-03T07:14:21.632851Z 0 [ERROR] [MY-010912] [Server] GTID_MODE = ON requires ENFORCE_GTID_CONSISTENCY = ON
  7. 2020-11-03T07:14:21.634183Z 0 [ERROR] [MY-010119] [Server] Aborting 
  8. …… 
  9. 2020-11-03T07:14:23.026551Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL. 
  10. root@scutech:~# 

 

看這個例子,我們很容易知道是需要我們同時設(shè)置參數(shù) GTID_MODE 和 ENFORCE_GTID_CONSISTENCY 同時為 on 才行。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-04-26 08:00:00

DevSecOps安全開發(fā)

2018-04-09 11:20:40

數(shù)據(jù)科學(xué)項目數(shù)據(jù)

2009-07-31 09:14:01

WinCE啟動失敗

2009-04-03 09:06:00

瀏覽器W3C標(biāo)準(zhǔn)

2011-08-01 16:31:29

MySQL數(shù)據(jù)庫外鍵

2018-05-29 11:44:22

數(shù)據(jù)庫MySQL死鎖

2024-12-31 15:52:43

2011-06-30 09:25:22

軟件項目

2021-06-18 10:03:37

變革管理首席信息官CIO

2024-10-30 14:50:31

2020-07-09 10:26:28

軟件項目軟件開發(fā)CIO

2019-11-12 16:34:12

網(wǎng)絡(luò)安全軟件技術(shù)

2020-09-09 12:59:26

藍(lán)屏驅(qū)動內(nèi)存

2013-04-26 09:26:56

軟路由升級失敗

2013-05-02 09:55:08

局域網(wǎng)遠(yuǎn)程連接失敗

2010-03-25 10:06:57

CentOS配置

2024-10-15 11:37:06

2015-09-24 16:09:45

軟件開發(fā)項目原因

2019-08-14 10:41:42

人工智能系統(tǒng)數(shù)據(jù)

2018-08-15 06:52:47

點贊
收藏

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