service mysqld start
service mysqld status
# 輸出:mysqld 已死,但是 subsys 被鎖
含義:MySQL 進程啟動後隨即退出,但啟動腳本留下的鎖檔 (/var/lock/subsys/mysqld) 未清理,導致 status 誤判為「已死但鎖存在」。
錯誤日誌 (/var/log/mysqld.log) 關鍵輸出:
Cannot initialize InnoDB as 'innodb_data_file_path' is not set.
If you do not want to use transactional InnoDB tables, add a line
skip-innodb
to the [mysqld] section...
If you want to use InnoDB tables, add to the [mysqld] section, for example,
innodb_data_file_path = ibdata1:10M:autoextend
原因:MySQL 5.5+ 預設啟用 InnoDB,但 my.cnf 缺少 innodb_data_file_path,導致 InnoDB 初始化失敗,進程退出。
cat /var/log/mysqld.log (或 journalctl -u mysqld),找 ERROR/FATALservice mysqld stopps aux | grep mysqldkill -9 PIDmv /var/lib/mysql /var/lib/mysql.bakcat /etc/my.cnf,對照官方範本cp /usr/share/mysql/my-small.cnf /etc/my.cnf (或 my-medium/large/huge)mysql_install_db --user=mysql --datadir=/var/lib/mysql (5.7+) 或 mysqld --initialize-insecure (8.0+)chkconfig --level 345 mysqld on / systemctl enable mysqldservice mysqld starttail -f /var/log/mysqld.log[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
# InnoDB 必備配置 (解決本文核心報錯)
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
# 基礎效能
max_connections = 200
thread_cache_size = 50
table_open_cache = 400
query_cache_type = 0
query_cache_size = 0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
| 日誌關鍵字 | 根因 | 修正 |
|---|---|---|
Can't create/write to file '/tmp/...' | tmpdir 權限/空間/掛載問題 | 修正 tmpdir、清理 /tmp、檢查 SELinux |
Unknown/unsupported storage engine: InnoDB | 配置錯誤導致 InnoDB 未載入 | 補全 InnoDB 配置、檢查 skip-innodb 未被開啟 |
Fatal error: Can't open and lock privilege tables | 系統表損壞/權限/路徑錯誤 | 重新 mysql_install_db、檢查 datadir 擁有者 |
Address already in use | 3306 埠被佔用 | ss -ltnp | grep 3306 找佔用者、修改 port |
Permission denied | datadir/log/error log 權限不對 | chown -R mysql:mysql /var/lib/mysql /var/log/mysqld.log |
因為多數「鎖殘留」問題本質是 配置缺失導致啟動失敗 → 鎖檔未清理。套用官方範本配置 + 初始化系統表,直接解決 90% 預設安裝場景的啟動失敗。若仍失敗,回到第 1 步看日誌,對症下藥。