載入配置檔案順序:/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的引數
open("/proc/self/status", o_rdonly) = 3
fstat(3, ) = 0
mmap(null, 4096, prot_read|prot_write, map_private|map_anonymous, -1, 0) = 0x7fe7602eb000
read(3, "name:\tmysqld\nstate:\tr (running)\n"..., 1024) = 917
read(3, "", 1024) = 0
close(3) = 0
munmap(0x7fe7602eb000, 4096) = 0
futex(0x3b550f1d08, futex_wake_private, 2147483647) = 0
stat("/etc/my.cnf", ) = 0
open("/etc/my.cnf", o_rdonly) = 3
fstat(3, ) = 0
mmap(null, 4096, prot_read|prot_write, map_private|map_anonymous, -1, 0) = 0x7fe7602eb000
read(3, "#my.cnf\n[client]\nport "..., 4096) = 2479
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7fe7602eb000, 4096) = 0
stat("/etc/mysql/my.cnf", 0x7fff3fce89a0) = -1 enoent (no such file or directory)
stat("/usr/local/mysql/etc/my.cnf", 0x7fff3fce89a0) = -1 enoent (no such file or directory)
stat("/root/.my.cnf", 0x7fff3fce89a0) = -1 enoent (no such file or directory)
getrlimit(rlimit_nofile, ) = 0
setrlimit(rlimit_nofile, ) = 0
getrlimit(rlimit_nofile, ) = 0
mmap(null, 1052672, prot_read|prot_write, map_private|map_anonymous, -1, 0) = 0x7fe75ffd0000
最佳啟動方式:
[root@vm-test1 data]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
[1] 3348
[root@vm-test1 data]#
[root@vm-test1 data]# ps -ef |grep mysql
mysql 3348 3114 4 10:03 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
root 3380 3114 0 10:03 pts/1 00:00:00 grep mysql
[root@vm-test1 data]#
多例項啟動方式:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/path/my.cnf & #呼叫 mysqld
/usr/local/mysql/bin/mysqld --defaults-file=/path/my.cnf & #推薦方式
/usr/local/mysql/bin/mysqld_multi start 3306 #關閉不了資料庫,perl 指令碼 呼叫 mysqld_safe和mysqld
幾種啟動方式關係:
service mysqld start 呼叫 mysqld_safe 呼叫 mysqld
mysqld_multi既可以直接呼叫mysql_safe 也可以直接呼叫mysqld
mysqld_safe啟動分析
可以讀取的配置部分mysqld、server、mysqld_safe
作業系統檔案數限制引數配置
open files 和 max_user_processes引數修改 乙個連線占用乙個執行緒
/etc/security/limits.conf
[root@vm-test1 data]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14708
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
posix message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 14708
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@vm-test1 data]#
mysqld_multi 用於管理多例項啟動的乙個指令碼
讀取配置檔案中的[mysqld_multi],[mysqldn] n需要是乙個整數,建議使用埠號表示,這部分的配置在配置檔案裡面會覆蓋[mysqld]部分中的配置
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
user=root
password=*********
log=/data/mysql/mysqld_muti.log
#(這裡的user、password自己指定,該賬號需要有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
*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都能找到原因
*確保getenforce為disabled狀態
perror檢視**錯誤資訊
64位Win10系統安裝Mysql5 7 11
最近在裝了64位win10系統的mac book筆記本上用mysql installer community 5.7.11.0安裝mysql5.7.11,在配置mysql server時老是卡住,報錯。在別的pc相同windows系統,自動安裝沒問題 估計是硬碟空間不夠,有些臨時檔案無法儲存的原因。...
mysql啟動幾種方式 mysql啟動的四種方式
mysql的四種啟動方式 1 mysqld 啟動mysql伺服器 mysqld defaults file etc my.cnf user root 客戶端連線 mysql defaults file etc my.cnf ormysql s tmp mysql.sock 2 mysqld safe...
啟動mysql配置檔案的啟動方式
mysql 配置檔案載入位置與順序 1.usr local mysql bin mysqld verbose help help.txt 2 1 usr local mysql bin mysqld verbose help 這個命令生成所有mysqld選項和可配置變數的列表 然後重定向到help....