中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL 啟動失敗的原因有哪些

發布時間:2021-07-13 16:15:29 來源:億速云 閱讀:234 作者:Leah 欄目:數據庫

MySQL 啟動失敗的原因有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、無法訪問系統資源

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

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

找出問題后,修改對應文件或目錄的權限或屬主后通常可以解決問題。但有時 mysql  用戶有訪問文件和目錄的權限,但仍然會被拒絕訪問,例如下面這個例子:

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

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

有時雖然對系統資源有訪問的權限,但系統資源已經被占用:

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

這個故障產生的原因是另外一個 mysqld 進程已經啟動并占用了對應的文件。

二、參數設置錯誤

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

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

知道了 MySQL 參數文件的調用順序,我們就可以檢查對應的參數文件,找出其中的錯誤,如果覺得參數文件的可讀性不強,可以使用下面的命令顯示 mysqld  程序將要調用的參數:

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

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

然后開始對可疑的參數進行調試,我個人喜歡加的參數和順序如下:

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

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

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

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

看這個例子:

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

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青岛市| 清镇市| 河南省| 舞阳县| 金秀| 凤庆县| 怀化市| 象州县| 若尔盖县| 建湖县| 红桥区| 盐源县| 娄烦县| 上杭县| 隆昌县| 德江县| 南和县| 鄱阳县| 错那县| 麻阳| 杭锦旗| 淮滨县| 光泽县| 武夷山市| 无为县| 济阳县| 东宁县| 叶城县| 托克逊县| 柯坪县| 铜梁县| 桦南县| 涞源县| 阳东县| 崇礼县| 丰都县| 伊通| 郸城县| 同心县| 济阳县| 西林县|