要做程式的搬移,臨時想要在 Docker 裡面裝個 MariaDB (MySQL) 來使用,沒想到光要看到 error 都要花點功夫~
在 Docker 內安裝 MariaDB Server
如果有使用 docker-compose 的話,建議直接拉 mariadb - Official Image 來用~
這邊只是紀錄想要把東西都包進一包 Docker 裡面,需要看 Error 來追問題,達到 MariaDB 正常啟動的過程~
此篇都在 Docker 裡面做的
- apt install mariadb-server
- /etc/init.d/mariadb start # 啟動失敗
要如何開啟 MariaDB 的 Error log
- vim mariadb.conf.d/50-server.cnf
將
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#log_error = /var/log/mysql/error.log改成 (拿掉 # 註解)
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_error = /var/log/mysql/error.log - vim mariadb.conf.d/50-mysqld_safe.cnf
將
skip_log_error改成 (加上 # 註解)
#skip_log_error - /etc/init.d/mariadb restart
- less /var/log/mysql/mysql.log # 若沒有檔案,看 /var/log/mysql 是否沒有寫入權限
看到錯誤訊息內容:
- [ERROR] Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not loaded
- [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
- [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.db' doesn't exist
這個訊息是資料庫沒有初始化資料,於是執行下述命令即可:
- sudo mysql_install_db
- /etc/init.d/mariadb restart # 就可以正常啟動了