jc21 / docker-mariadb-aria

Docker extension of the mariadb image that forces aria storage engine
30 stars 10 forks source link

Docker tag 10.4 missing #8

Closed SteveGBuck closed 3 years ago

SteveGBuck commented 3 years ago

Since I first started using Nginx-proxy-manager I was using docker image jc21/mariadb-aria:10.4 for the DB.

I just switched to :latest and now get the error:

[Global ] › ✖ error select * from migrations_lock - ER_UNKNOWN_STORAGE_ENGINE: Unknown storage engine 'InnoDB'

I notice in the release notes it says if you get this error to stick with 10.4 but this tag (and therefore the image) is no longer listed on Docker hub. So its not possible to re-pull this image.

Fortunately, I didn't delete my local copy so can revert for now but not an ideal long term solution.

Is there any guidance available on how to migrate to a support version?

andrewhaji commented 3 years ago

Just wanted to chime in and say that I'm having the exact same issue. Ran a docker-compose pull; docker-compose up -d today and got the error that the 10.4 tag is no longer available. Tried to switch to latest and it broke NPM. Any ideas? Many thanks.

jc21 commented 3 years ago

You can use the 10.4.15 tag instead it won't break NPM.

Just tested it myself.

andrewhaji commented 3 years ago

Thanks, but I just tried that and now get this error from the app:

app_1  | [8/18/2021] [10:52:26 PM] [Global   ] › ✖  error     select * from `migrations_lock` - ER_UNKNOWN_STORAGE_ENGINE: Unknown storage engine 'InnoDB'
jc21 commented 3 years ago

Ah right 10.4 had innodb enabled and this one doesn't.

To get around this, you can create a my.cnf file in the same place as your docker-compose.yml file with this:

[mysqld]
default-storage-engine=Aria
default-tmp-storage-engine=Aria
symbolic-links=0
log-output=file
skip-host-cache
skip-name-resolve

and mount it in docker-compose.yml

    image: jc21/mariadb-aria:10.4.15
    volumes:
      - ./my.cnf:/etc/mysql/my.cnf

See if that works?

andrewhaji commented 3 years ago

Thank you - that works perfectly! Much appreciated.

(Is there any way of converting our existing databases so that we can use the latest tag without having to manually enable InnoDB? Or would we have to start from scratch?)

jc21 commented 3 years ago

Umm you can do a mysqldump in the current database, bring up a new database with latest and the reimport the sql. However the sql will have some crap about the table type including innodb stuff, that needs to be stripped out of the file first.

In the case of NPM I'm looking into an option to convert the mysql database to the sqlite one, so you don't have to rely on any future mysql problems.

TWhidden commented 3 years ago

This one got me too. Might want to have a notice up that :latest will break existing nginx-proxy-manager deployments if they update an existing system. Or, create a different tag for the new version, that doesn't break existing nginx proxy manager sites and push a :latest tag that reverses this. The latter prob creates less havoc; Wish I caught this thread a couple hours ago. Glad its an easy work around though. Thanks.

jc21 commented 3 years ago

Yeah I'm still not sure why the 10.4 tag was deleted. I know dockerhub cleans up images but if they were still being pulled it shouldn't have been killed.

TWhidden commented 3 years ago

there is a jc21/mariadb-aria:10.4.15 , but it has

[mysqld]
skip-innodb
default-storage-engine=Aria
default-tmp-storage-engine=Aria
innodb=OFF
symbolic-links=0
log-output=file
skip-host-cache
skip-name-resolve
jc21 commented 3 years ago

I've just added another tag:

jc21/mariadb-aria:10.4.15-innodb

for those who still need innodb enabled.

andrewhaji commented 3 years ago

Thank you!

lug-gh commented 3 years ago

I've just added another tag:

jc21/mariadb-aria:10.4.15-innodb

for those who still need innodb enabled.

Will that innodb tag stay for the future?

jc21 commented 3 years ago

Yep certainly will