使用docker安装mysql8
·
使用docker-compose安装mysql 8.4.3,并且把时区设置为上海。
volumes 配置的作用
/var/db/mysql/data:这是将容器内的/var/lib/mysql目录挂载到主机的/var/db/mysql/data目录。这种方式的好处是可以直接在主机上访问和管理数据文件。
version: '3.8'
services:
db:
image: mysql:8.4.3
container_name: mysql_db
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_user
MYSQL_PASSWORD: your_password
TZ: Asia/Shanghai
volumes:
- /opt/mysql/data:/var/lib/mysql
- /opt/mysql/conf:/etc/mysql/conf.d
ports:
- "3306:3306"
restart: always
并在宿主机上创建文件:
mkdir -p /opt/mysql/conf /opt/mysql/data /opt/mysql/logs
cat > /opt/mysql/conf/custom.cnf <<EOF
[mysqld]
innodb_buffer_pool_size = 80M
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-time-zone = +8:00
lower_case_table_names = 1
EOF
解释
/opt/mysql/data:/var/lib/mysql:将主机的/opt/mysql/data目录挂载到容器的/var/lib/mysql目录。这样,MySQL 的数据文件将存储在主机的/opt/mysql/data目录中(你也可以配置其它目录)。/opt/mysql/conf:/etc/mysql/conf.d将配置参数统一写到/etc/mysql/conf.d/custom.cnf
确保主机目录存在
在启动容器之前,请确保主机上的目录 /var/db/mysql/data 已经存在,并且具有适当的权限。
sudo mkdir -p /var/db/mysql/data
sudo chown -R 999:999 /var/db/mysql/data
999:999是 MySQL 容器内运行 MySQL 服务的用户和组的 UID 和 GID。您可以根据实际情况调整这些值。
启动 MySQL 容器
在 mysql-docker 目录下运行以下命令来启动 MySQL 容器:
docker-compose up -d
验证安装和时区设置
-
检查容器状态:
docker-compose ps -
进入 MySQL 容器:
docker exec -it mysql_db mysql -uroot -p -
验证时区设置:
SHOW VARIABLES LIKE '%time_zone%'; SELECT NOW();
注意事项
- 权限:确保主机目录
/var/db/mysql/data具有适当的权限,以便 MySQL 容器可以读写数据。 - 数据备份:定期备份主机上的数据目录,以防止数据丢失。
- 路径长度:确保路径长度不超过操作系统和文件系统的限制。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)