偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL 啟動失敗的常見原因

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

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

[[351343]]

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

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

 

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

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

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

有時(shí)雖然對系統(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 

 

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

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

參數(shù)設(shè)置錯(cuò)誤造成 MySQL 無法啟動的原因也非常常見,此時(shí)先要檢查 MySQL 啟動時(shí)會調(diào)用的參數(shù),下面的命令可以查詢 MySQL 啟動時(shí)調(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ù)文件,找出其中的錯(cuò)誤,如果覺得參數(shù)文件的可讀性不強(qiáng),可以使用下面的命令顯示 mysqld 程序?qū)⒁{(diào)用的參數(shù):

 

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

 

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

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

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

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

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

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

看這個(gè)例子:

 

  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:~# 

 

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

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

2021-04-26 08:00:00

DevSecOps安全開發(fā)

2018-04-09 11:20:40

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

2009-07-31 09:14:01

WinCE啟動失敗

2009-04-03 09:06:00

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

2018-05-29 11:44:22

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

2011-08-01 16:31:29

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

2024-12-31 15:52:43

2020-07-09 10:26:28

軟件項(xiàng)目軟件開發(fā)CIO

2011-06-30 09:25:22

軟件項(xiàng)目

2024-10-30 14:50:31

2021-06-18 10:03:37

變革管理首席信息官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配置

2013-05-10 10:39:15

2017-01-16 18:11:23

存儲

2012-11-14 14:39:21

2017-04-26 15:40:07

云計(jì)算失敗企業(yè)
點(diǎn)贊
收藏

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