使用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.3container_name: mysql_dbenvironment:MYSQL_ROOT_PASSWORD: your_root_passwordMYSQL_DATABASE: your_database_nameMYSQL_USER: your_userMYSQL_PASSWORD: your_passwordTZ: Asia/Shanghaivolumes:- /var/db/mysql/data:/var/lib/mysqlports:- "3306:3306"restart: always
解释
/var/db/mysql/data:/var/lib/mysql
:将主机的/var/db/mysql/data
目录挂载到容器的/var/lib/mysql
目录。这样,MySQL 的数据文件将存储在主机的/var/db/mysql/data
目录中。
步骤 4: 确保主机目录存在
在启动容器之前,请确保主机上的目录 /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 容器可以读写数据。 - 数据备份:定期备份主机上的数据目录,以防止数据丢失。
- 路径长度:确保路径长度不超过操作系统和文件系统的限制。