MySQL
阅读量: 101
阅读人次: 102
MySQL需要作为nexcloud和gitea的数据库。使用 unRaid 的应用市场安装,会经常提示更新,数据库很重要,这里我们手动维护,避免MySQL不能使用,或被修改。
mkdir -p /mnt/user/appdata/mysql \
&& touch /mnt/user/appdata/mysql/error.log \
&& chmod -R 777 /mnt/user/appdata/mysql
docker run -d --restart=unless-stopped --name=MySQLServer -e TZ="Asia/Shanghai" -p 3306:3306 \
-e 'MYSQL_ROOT_PASSWORD'='your_password' \
-v /mnt/user/appdata/mysql/data:/var/lib/mysql \
-v /mnt/user/appdata/mysql:/var/log/mysql \
-v /mnt/user/appdata/mysql/conf.d:/etc/mysql/conf.d \
-v /mnt/user/appdata/mysql/initdb:/docker-entrypoint-initdb.d \
mysql:8.4.6 mysqld --log-error=/var/log/mysql/error.log
危险
重要数据的容器应用,不要使用 latest 标签!它会一直更新,且你很一直追踪到其真正的版本。
我在实际使用时,遇到了不同镜像源下,其 latest 的版本不一致,导致数据出现不兼容的现象!
重要数据的docker应用也不应经常更新!更新前,做好数据备份。
2024/10/10:今天尝试将 MySQL 更新到 9.0 版本,结果导致 Nextcloud 无法正常运行,辛亏通过 Unraid 的 Appdata.Backup 做了下一周一次备份,可以恢复之前的数据。这次的代价是丢失了三天的数据,如果不做备份,后果很严重。
MySQL 8.4 开始 mysql_native_password 默认不会加载,导致 Nextcloud 无法正常运行。
/mnt/user/appdata/mysql-official/conf.d
[mysqld-8.4]
mysql_native_password=on
chmod 644 /mnt/user/appdata/mysql-official/conf.d
docker restart MySQLServer