快轉到主要內容

解決Windows Docker 客戶端使用 Mariadb 官方image啟動報錯

·526 字·2 分鐘
Y Cheung
作者
Y Cheung
Blogger, Programer & Traveler.

MariaDB Image使用的是當前最新的v10.3版本

1docker pull mariadb:latest

docker-compose.yml文件內容:

 1version: "3"
 2services:
 3  mariadb:
 4    image: mariadb
 5    container_name: mariadb
 6    restart: always
 7    volumes:
 8      - ${DATA_DIR}:/var/lib/mysql
 9    ports:
10      - "3306:3306"
11    environment:
12      MYSQL_ROOT_PASSWORD: password
13      MYSQL_DATABASE: public

.env 文件內容:

1DATA_DIR=d:/data

容器起來後沒多久就掛掉重啟,查看log信息:

 12018-09-17 13:25:21 0 [Note] mysqld (mysqld 10.3.9-MariaDB-1:10.3.9+maria~bionic) starting as process 1 ...
 22018-09-17 13:25:21 0 [Note] InnoDB: Using Linux native AIO
 32018-09-17 13:25:21 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
 42018-09-17 13:25:21 0 [Note] InnoDB: Uses event mutexes
 52018-09-17 13:25:21 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
 62018-09-17 13:25:21 0 [Note] InnoDB: Number of pools: 1
 72018-09-17 13:25:21 0 [Note] InnoDB: Using SSE2 crc32 instructions
 82018-09-17 13:25:21 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
 92018-09-17 13:25:21 0 [Note] InnoDB: Completed initialization of buffer pool
102018-09-17 13:25:21 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
112018-09-17 13:25:21 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 0 pages than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
122018-09-17 13:25:21 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
132018-09-17 13:25:21 0 [Note] InnoDB: Starting shutdown...
142018-09-17 13:25:21 0 [ERROR] Plugin 'InnoDB' init function returned error.
152018-09-17 13:25:21 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
162018-09-17 13:25:21 0 [Note] Plugin 'FEEDBACK' is disabled.
172018-09-17 13:25:21 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
182018-09-17 13:25:21 0 [ERROR] Unknown/unsupported storage engine: InnoDB
192018-09-17 13:25:21 0 [ERROR] Aborting

這個問題很多人已經遇到了,github上有很多討論,比如這個( https://github.com/MariaDB/mariadb-docker/issues/38 )還有這個( https://github.com/laradock/laradock/issues/916 )等,解決方法是在啟動容器的時候加一條命令 mysqld --innodb-flush-method=fsync

最終在Windows Docker 可以正常運行的docker-compose.yml是:

 1version: "3"
 2services:
 3  mariadb:
 4    image: mariadb
 5    container_name: mariadb
 6    restart: always
 7    volumes:
 8      - ${DATA_DIR}:/var/lib/mysql
 9    ports:
10      - "3306:3306"
11    environment:
12      MYSQL_ROOT_PASSWORD: password
13      MYSQL_DATABASE: public
14    command: 'mysqld --innodb-flush-method=fsync'

希望官方能夠在這之後的版本中解決這個問題。

相關文章

MYSQL外鍵導致無法清空表

·132 字·1 分鐘
最近設計的數據庫表含有外鍵,結果在開發時truncate table的時候報錯了, 1SQL错误(1701):Cannot truncate a table referenced in a foreign key constraint (`rollcall2`.`oncall`, CONSTRAINT `FK__calls` FOREIGN KEY (`calls_id`) REFERENCES `rollcall2`.`calls` (`id`)) 解決辦法如下: 1SET FOREIGN_KEY_CHECKS = 0; 2TRUNCATE table; 3SET FOREIGN_KEY_CHECKS = 1; 當然也可以通過移除外鍵之類的辦法,但是感覺還是用上面幾行命令來解決比較方便。

Windows7安裝Android Studio報錯 ERROR1812

·108 字·1 分鐘
在 Win7 上運行 Android Studio 安裝包的時候,一直報錯 Unable to elevate[error:1812] 上網搜了一下,原來是windows兼容性問題orz… 解決方案: 鼠標右擊,選擇 “兼容性疑難解答”,選擇 “嘗試建議的設置”,選擇啟動程序 ,然後一直點擊下一步就好了。

Aliyun MySQL Aborting

·331 字·1 分鐘
放了wordpress的主機最近經常掛掉,提示無法連結數據庫,檢查log信息發現是因為內存不足,把InnoDB的buffer pool size改小後似乎好了一些,可今天還是出錯了,log信息如下:

Nodejs中使用Async進行流程控制

·321 字·1 分鐘
由於Node.js 是異步編程模型,在流程控制上很麻煩很複雜,幾個簡單的順序步驟就會寫出一堆回調嵌套,很頭疼。試了幾個庫都不能很好的解決這個問題,在同事Michael推薦了Async給我後順利的簡化了不少代碼!