部署在云服务器Docker 下的mysql时间比实际时间少了8小时 解决方案

部署在云服务器上MySQL默认当前时间比当前实际时间少8小时,而用本地数据数据正常,于是定位到可能是docker 的mysql时区不对

 MySQL数据库 

字段:create_time  类型:  timestamp  默认: CURRENT_TIMESTAMP

对应实体类    

private LocalDateTime createTime;

1.查看进程/容器:

docker ps

2.进入MySQL容器:

docker exec -it f4a2d6bf1063 /bin/bash

3.输入命令: 

date

查看时间,会发现比当前时间少了8小时

 

4. 输入exit.退出MySQL容器回到centos,把时区文件和容器的文件进行一个替换

docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/usr/share/zoneinfo/Asia
 
docker exec -it cf-mysql bash
 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5.重启

docker stop mysql
 
docker start mysql

6.使用本地Navicat查看MySQL当前时间

select now();

### 使用 Docker云服务器部署 MySQL云服务器环境中,可以通过 Docker 容器化技术快速安装并配置 MySQL 数据库。以下是实现这一目标的具体方法: #### 创建 MySQL 容器 可以使用 `docker run` 命令启动一个基于官方镜像的 MySQL 容器,并设置必要的参数以满足需求。例如,以下命令会创建一个名为 `mysql_01` 的容器,挂载本地数据目录 `/data/mysql/` 到容器内的 `/var/lib/mysql` 路径,映射端口 3306 至主机的 3641 端口,并初始化根密码为 `admin` 同时创建默认数据库 `data`[^1]。 ```bash docker run -d \ --name mysql_01 \ --restart always \ -v /data/mysql/:/var/lib/mysql \ -p 3641:3306 \ -e MYSQL_ROOT_PASSWORD=admin \ -e MYSQL_DATABASE=data \ mysql:8.0 ``` 此命令中的选项解释如下: - `-d`: 表示以后台模式运行容器。 - `--name mysql_01`: 设置容器名称为 `mysql_01`。 - `--restart always`: 配置容器自动重启策略。 - `-v /data/mysql/:/var/lib/mysql`: 将宿主机上的 `/data/mysql/` 文件夹挂载到容器内部作为持久存储路径。 - `-p 3641:3306`: 映射宿主机的 3641 端口至容器内的 3306 默认 MySQL 端口。 - `-e MYSQL_ROOT_PASSWORD=admin`: 设定 root 用户的初始密码为 admin。 - `-e MYSQL_DATABASE=data`: 自动创建名为 data 的数据库实例。 - `mysql:8.0`: 指定使用的 MySQL 版本为 8.0。 #### 修改绑定地址以便外部访问 如果希望其他服务或者客户端能够连接到该 MySQL 实例,则需调整其监听范围。通常情况下,默认只允许来自 localhost (即 127.0.0.1) 的请求被接受。为了改变这一点,应编辑 MySQL 的配置文件并将原本限定于本地回环接口的部分取消激活[^3]。 具体操作步骤如下所示: 1. 找寻 MySQL 主要设定档所在位置; 2. 编辑对应文档(比如通过指令 `vi /etc/mysql/mysql.conf.d/mysqld.cnf`),定位至涉及网络绑定部分; 3. 对原有行项前加上井号 (#),使其成为注解状态从而失效原有限制作用; 完成上述更改之后记得保存修改成果并且重新加载或完全停止再开启相关进程使得新规定生效。 #### 总结 综上所述,在 CentOS 或者其他的 Linux 发行版构成的基础之上运用 Docker 技术搭建起一套完整的 LAMP(Linux Apache Mysql Php)/LEMP(Linux Nginx Engine-x Mysql Php)架构体系是非常便捷高效的解决方案之一[^2]。它不仅简化了传统意义上的软件包管理流程而且极大地提高了资源利用率与隔离程度保障各个应用之间互不干扰正常运转。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值