首先先貼上出來我的錯誤資訊,如下:
2019-07-16t00:53:18.285919z 0 [system] [my-010116] [server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 185552019-07-16t00:53:18.506674z 0 [error] [my-012681] [innodb] mmap(137428992 bytes) failed; errno 12
2019-07-16t00:53:18.506740z 1 [error] [my-012956] [innodb] cannot allocate memory for the buffer pool
2019-07-16t00:53:18.506757z 1 [error] [my-012930] [innodb] plugin initialization aborted with error generic error.
2019-07-16t00:53:18.509371z 1 [error] [my-010334] [server] failed to initialize dd storage engine
2019-07-16t00:53:18.510501z 0 [error] [my-010020] [server] data dictionary initialization failed.
2019-07-16t00:53:18.513074z 0 [error] [my-010119] [server] aborting
2019-07-16t00:53:18.518947z 0 [system] [my-010910] [server] /usr/sbin/mysqld: shutdown complete (mysqld 8.0.15) mysql community server - gpl.
可以看到服務啟動失敗,關鍵看這麼一句:cannot allocate memory for the buffer pool。表明的意思是不能再給innodb的快取池分配記憶體了。想到的我的伺服器記憶體很小,才1g,十分有可能是這個原因,進而查資料得知innodb_buffer_pool_size這個預設值是128m,我通過free檢視了我的記憶體剩餘200多兆,但是沒有設定swap分割槽大小,或許就是因為系統本身所需記憶體也不足無法為服務分配空間而導致的服務宕機吧。
那麼,接下來我做的事情就兩步了:
其一:修改innodb_buffer_pool_size的大小,放置在mysql的配置檔案中,我的配置檔案是在/etc/mysql/mysql.conf.d/mysqld.cnf中,你們的可能是在/etc/mysql/my.cnf下,根據實際情況來吧。
[mysqld]pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
innodb_buffer_pool_size = 64m # add here,default is 128m
bind-address = 0.0.0.0
其二:為系統swap分割槽分配乙個值,swap存在的本身作用也就是在系統的物理記憶體(這裡應該是執行記憶體)不夠用的時候,把物理記憶體中的一部分空間釋放出來,以供當前執行的程式使用。用以下命令建立乙個swap檔案掛載在系統上,需要你在root許可權下執行這些操作。
dd if=/dev/zero of=/swapfile bs=1m count=1024mkswap /swapfile
swapon /swapfile
然後新增/swapfile swap swap defaults 0 0
到/etc/fstab
檔案裡面。【作用是保證重啟系統前面的操作不會丟失,要讓系統重啟的時候能自動掛載,需要在fstab檔案中配置掛載項。】
label=cloudimg-rootfs / ext4 defaults 0 0/swapfile swap swap defaults 0 0 # add here
最後重啟一下mysql就可以了。
記一次mysql宕機
e warning pdo prepare mysql server has gone away pdo prepare mysql server has gone awayilluminate database queryexception sqlstate hy000 2002 connecti...
記錄一次統計首頁MYSQL非常慢的解決過程
select resource size int from t resource info where release status in 1,3 and res type in 1,2,4,5 and resource size int 0 and group id 1 limit 0,1000 ...
記錄一次kworkerds挖礦木馬的解決
top檢視程序資訊,發現有幾個名為kworkerds的程序,即為挖礦程序 使用crontab l命令檢視系統定時任務,發現了它的定時任務 pastebin是任意上傳分享的平台,攻擊者藉此實現匿名,於是訪問想看看指令碼是什麼樣的,可是好像被刪掉了,有點小遺憾。進入 var spool cron將對應的...