1. 程式人生 > >理解MySQL啟動過程及常見啟動故障處理

理解MySQL啟動過程及常見啟動故障處理

Mysql啟動配置檔案載入路徑

Mysql啟動的方式

Mysql啟動的內部流程

常見啟動故障及分析過程

 Mysql可以讀取到的配置檔案路徑順序

/etc/my.cnf---->/etc/mysql/my.cnf----->/usr/local/mysql/etc/my.cnf---->~/.my.cnf

 *後面配置檔案會覆蓋前面配置檔案設定的引數

如果/etc/my.cnf配置檔案定義了innodb_buffer_pool_size=100M /etc/mysql/my.cnf配置檔案定義了innodb_buffer_pool_size=200M 則會載入200M的引數

 檢視方法:

mysqld --verbose --help |grep my.cnf


--defaults-file引數指定讀取配置檔案引數

 Strace跟蹤mysql的啟動過程

strace /usr/local/mysql/bin/mysqld 2>&1 |tee /data/1.log


可以看到直接找了/etc/my.cnf下的配置檔案 只讀


3個配置檔案也依次找了 但是沒找到

--print-defaults 輸出現在mysqld指定的引數


MySQL啟動方式

標準啟動方式

Service mysqld start

/etc/ini.d/mysqld start

說明mysqld來自

Cp /usr/local/mysql/support-file/mysql.server /etc/ini.d/mysqld

 多例項啟動方式

/usr/local/mysql/bin/mysqld_safe --defaults-file=/path/my.cnf &

 /usr/local/mysql/bin/mysqld  --defaults-file=/path/my.cnf &

 /usr/local/mysql/bin/mysqld_multi start 3306

 幾種啟動方式關係

Service mysqld start 呼叫 mysqld_safe 呼叫 mysqld

 Mysqld_multi既可以直接呼叫mysql_safe 也可以直接呼叫mysqld

示意圖:


mysqld_safe啟動分析

可以讀取的配置部分

mysqldservermysqld_safe

作業系統檔案數限制引數配置


Open files max_user_processes引數修改 一個連線佔用一個執行緒

/etc/security/limits.conf

 Mysqld_multi 用於管理多例項啟動的一個指令碼

讀取配置檔案中的[mysqld_multi],[mysqldN] N需要是一個整數,建議使用埠號表示,這部分的配置在配置檔案裡面會覆蓋[mysqld]部分中的配置

[mysqld_multi]

mysqld=/usr/local/mysql/bin/mysqld_safe

mysqladmin=/usr/local/mysql/bin/mysqladmin

user=root

[email protected]

log=/data/mysql/mysqld_muti.log

 #(這裡的userpassword自己指定,該賬號需要有shutdown許可權)

 [mysqld3306]

port=3306

datadir=/data/mysql/mysql3306/data

socket/tmp/mysql3306.sock

server-id=203306

log-bin=/data/mysql/mysql3306/logs/mysql-bin

 呼叫方式

mysqld_multi start|stop|reload|report  {port}

*mysqld_multi只能識別的配置檔案就是在my.cnf,其他配置檔案不能識別

 環境演示:mysql多例項3306 3307 3308

/etc/my.cnf




使用mysqld_muiti關閉例項BUG修復,不能正常關機

my_print_defaults 引數



*發現問題 密碼不能識別,密碼不能傳遞

 vim /usr/local/mysql/bin/mysqld_multi

my_print_defaults 後面新增-s引數


可以正常關閉多例項


*Mysql遇到啟動錯誤的第一時間記得看error.log

 常見啟動錯誤:

1、許可權錯誤

故障模擬:

mysqld_multi stop 3306

chown root:root mysql3306/ -R

開始啟動3306例項 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

 這個時候發現並起不來,直接退出了


使用strace命令進行追蹤

strace /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf  2>&1|tee log


再將許可權改回來 很簡單 就是一個排查的思路 記得使用strace

Chown mysql:mysql /data/mysql/mysql3306/  -R

 2、引數配置錯誤導致MySQL起不來

   檢視error.log都能找到原因

*確保getenforcedisabled狀態

perror檢視程式碼錯誤資訊




相關推薦

理解MySQL啟動過程常見啟動故障處理

Mysql啟動配置檔案載入路徑 Mysql啟動的方式 Mysql啟動的內部流程 常見啟動故障及分析過程  Mysql可以讀取到的配置檔案路徑順序 /etc/my.cnf---->/etc/mysql/my.cnf----->/usr/local/mysql/et

Hadoop啟動操作過程常見錯誤

主要啟動步驟 格式化 cd $HADOOP_HOME ./bin/hdfs namenode -format 成功的話,會看到 “successfully formatted”

centos7啟動過程systemd祥細說明

引導 ica 中斷 use level swa lock 允許 mct 開機啟過程POST—>BOOT SEQUENCE—> BOOTLOADER—>KERNEL + INITRAMFS(INITRD)—>ROOTFS—>/sbin/initP

[svc]linux啟動過程級別

cve 內核線程 當前 pos 可用 crc 開機啟動流程 中斷機制 rtu Unix目錄結構的來歷 Linux 的啟動流程 Linux 引導過程內幕 嵌入式系統 Boot Loader 技術內幕 1.簡單口述 1.開機BIOS自檢 2.MBR引導 3.grub引導菜單 4

python 05day --linux啟動過程檔案合併歸檔壓縮vi和vim編輯器

一、linux系統啟動過程 1)核心的引導。 當計算機開啟電源後,首先是BIOS開機自檢,按照BIOS中設定的啟動裝置(通常是硬碟)來啟動。 作業系統接管硬體以後,首先讀入 /boot 目錄下的核心檔案。 2)執行 init。 init 程序是系統所有程序的起點,你可以把它比擬成系統所有程序的老祖宗

你所不知道的SQL Server資料庫啟動過程,以及啟動不起來的各種問題的分析解決技巧

目前SQL Server資料庫作為微軟一款優秀的RDBMS,其本身啟動的時候是很少出問題的,我們在平時用的時候,很少關注起啟動過程,或者很少了解其底層執行過程,大部分的過程只關注其內部的表、儲存過程、檢視、函式等一系列應用方式,而當有一天它執行的正常的時候突然啟動不起來了,這時候就束手無策了,能做的或許只能是

SpringCLoud元件---Eureka Server詳細啟動過程圖解

EurekaServer作為註冊中心,記錄著所有應用的資訊和狀態,應用叫什麼名字,在哪個伺服器上, 以及目前是不是正常工作,註冊中心按照服務名分類組織服務清單,同時還需要以心跳檢測的方式去監測清單中的服務是否可用,若不可用需要從服務清單中剔除,以達到排除故障服務的效果。下面演

2015版uboot的啟動過程網絡卡驅動結構分析

啟動流程和上篇博文介紹的rtems類似 首先是start.s: 在這裡選擇arm的arm7作為例子分析,程式碼:/arch/arm/cpu/armv7/start.s /* * armboot - Startup Code for OMAP3530/ARM Cortex

深入理解mysql-進階知識點,啟動項、系統變數、字符集介紹!

mysql資料庫是當前應用最為的廣泛的資料庫,在實際工作中也經常接觸到。真正用好mysql也不僅僅是會寫sql就行,更重要的是真正理解其內部的工作原理。本文先從巨集觀角度介紹一些mysql相關的知識點,目的是為了讓大家對mysql能有一個大體上的認知,後續再逐一對每個知識點的進行深入解讀。 > 本文主

Linux的啟動過程init程序

Linux下有三個特殊程序: idle程序(pid=0)idle程序其前身是系統建立的第一個程序,0號程序,也唯一一個沒有通過fork()或者kernel_thread產生的程序,由系統自動建立,執行在核心態。0號程序在建立了init程序後,演變成為idle程序。主處理器上的idle程序是由原始程序(0號程

Mysql索引介紹常見索引的區別

掃描 varchar mysql查詢 運算 最優 慢慢 對比 非聚集索引 單個 關於MySQL索引的好處,如果正確合理設計並且使用索引的MySQL是一輛蘭博基尼的話,那麽沒有設計和使用索引的MySQL就是一個人力三輪車。對於沒有索引的表,單表查詢可能幾十萬數據就是瓶頸,而通

mysql主從備份常見問題處理

top 存在 是否 table read 應用 and 常見問題 png 1.mysql主從備份基本原理 mysql支持單向、異步復制,復制過程中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。mysql復制基於主服務器在二進制日誌中跟蹤所有對數據庫的更

mysql安裝過程註意事項

無法 輸入 warn bye oot 放置 pass mage sql 1.1. 下載: 我下載的是64位系統的zip包: 下載地址:https://dev.mysql.com/downloads/mysql/ 下載zip的包: 下載後解壓:D:\軟件安裝包\mysql

Mangos Zero服務器搭建簡要過程常見問題

搭建 個數 -m 復制 -a mod all 端口 正常 網上的搭建教程已經有很多,該文章主要記錄在Win7 64bit上搭建的簡要過程,以及出現的問題。 1.源碼下載 首先是下載 git for windows:G

Windows 上 SQLyog 連線 CentSO7 上 MySql 相關設定常見問題

一、版本相關 1. CentOS7 # cat /etc/redhat-release  CentOS Linux release 7.4.1708 (AltArch)  2. Mysql # mysql -V mysql  Ver 14.14 Di

mysql儲存過程拼接字串的用法

DROP PROCEDURE IF EXISTS insert_historytable;DELIMITER //CREATE PROCEDURE insert_historytable()BEGIN ##定義判斷變數 DECLARE 1_id varchar(50); DECLARE 1_dissolved

MySQL--下載--安裝--常見問題

1、下載 下載網址https://www.mysql.com/   2、映象 常見映象有: http://blog.csdn.net/enweitech/article/details/52353114 下載地址:http://m

Android輸入系統(二)IMS的啟動過程和輸入事件的處理

本文首發於 劉望舒的部落格 地址:liuwangshu.cn/framework/i… 關聯絡列 解析WMS系列 深入理解JNI系列 輸入系統系列 前言 在上一篇文章中,我們學習了IMS的誕生(建立),IMS建立後還會進行啟動,這篇文章我們來學習IMS的啟動過程和輸入事件的處理。 1.IMS

mysql安裝過程注意事項

1、下載MySql  選擇對應的下載檔案。(我電腦是64位,所以這下載的是64位的下載檔案) 2、安裝MySql  開啟下載檔案解壓到指定檔案目錄。(我這裡解壓目錄為F:\Program Files\mysql-5.7.23-winx64)  

mysql儲存過程部分函式

轉載,很詳細,就極其不要臉的轉過來儲存一下。點選檢視原文 儲存過程簡介 SQL語句需要先編譯然後執行,而儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數