技术标签: mysql 8 Linux 时区 # Docker # MySQL docker
【注】MySQL 5.7
也类似,只是配置文件有所改变,在文章中会详细说明。
虽然在正式环境中不推荐使用 MySQL 容器
来存储数据,但是在内网的开发环境中还是可以使用的,但是 MySQL 容器
默认的不是中国时区
,而是世界标准时间(UTC
),所以在国内使用的话需要配置一下,否则会早8个小时,可以通过下面方法检查一下:
查看数据库当前时间:
SELECT NOW()
NOW |
---|
2020-12-08 06:27:46 |
查看数据库当前时区:
SHOW VARIABLES LIKE '%time_zone%';
Variable_name | Value |
---|---|
system_time_zone | UTC |
time_zone | SYSTEM |
说明:
system_time_zone UTC
: 当前系统时区time_zone:SYSTEM
: MySQL 采取的时区,默认为 SYSTEM,跟随系统。通过SQL
语句设置。
# 仅修改当前会话的时区,停止会话失效(看具体场景使用)
set time_zone = '+8:00';
# 修改全局的时区配置,但是重启后会失效
SET GLOBAL time_zone = 'Asia/Shanghai'
# 或
SET GLOBAL time_zone = '+8:00'
# 强制刷新
flush privileges
如果原有容器可是删除的话,可以直接创建一个新的容器,并指定时区参数,这样容器的 Linux
环境就成为中国标准时间(CST)
,时区的标准比较复杂,这里不做太多探讨。
docker run -d -p 3306:3306 --name mysql-test -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql
参数说明:
-e TZ=Asia/Shanghai
:表示时区为中国(上海)。
【注】更多参数请访问:
【注】这样修改后,容器所在的 Linux 系统环境仍然使用的是 UTC 时间,而 MySQL 使用的是我们设置的时间。
【注】 容器内部默认使用的是最小化的 debian 发行版,默认没有文本编辑器,需要自行安装。如果不想安装环境,直接异步:高级篇:通过 docker cp 操作配置文件
# 更新源(速度会比较慢)建议使用阿里镜像
apt-get update
# 安装 vim
apt install vim
# 查看正在运行的容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
946175835a9f mysql "docker-entrypoint.s…" 29 seconds ago Up 28 seconds 33060/tcp, 0.0.0.0:4000->3306/tcp mysql-test
# 进入容器内部
docker exec -it mysql-test bash
# 或
docker exec -it 946175835a9f bash
配置文件放在 /etc/mysql
目录下。
# MySQL 8 默认只有 my.cnf 和 conf.d 等文件
# 修改的时候只修改 my.cnf 文件即可
cd /etc/mysql
vim my.cnf
# MySQL 5.7 默认有 my.cnf、conf.d、mysql.cnf、mysql.conf.d 等文件
# 修改的时候需修改 mysql.conf.d/mysqld.cnf 文件即可
cd /etc/mysql/mysql.conf.d
vim mysqld.cnf
找到 [mysqld]
,并在 datadir
下面另加一行 default-time-zone = '+8:00'
即可,然后保存并退出。
【注】default-time-zone = '+8:00'
比较简单,如果想更容易理解的话也可以:default-time-zone = 'Asia/Shanghai'
,都是一样的效果。图片中应为 default-time-zone
。
docker restart mysql-test
【注】进入 docker
容器内部更多信息请移步:Docker 进入容器,并在容器内执行命令
通过第三种方式需要安装额外的文本编辑器才能对配置文件就行编辑与保存,比较麻烦。一般来说宿主机器都会配置好相关的软件,通过使用 docker cp
命令可以把 MySQL
的配置文件
复制到宿主机器上,在宿主机器上编辑完成后,在复制到容器内部替换掉原有的配置文件,在此操作之前,我们最好是先在容器内,将配置文件备份一下(这里以 MySQL 8 为例,MySQL 5.7 类似)。
# 进入容器内部
docker exec -it mysql-test bash
# 或
docker exec -it 946175835a9f bash
# 备份文件目录
cd /etc/mysql
cp my.cnf my.cnf.bak
通过 docker cp
复制容器中的配置文件至宿主主机
# 进入当前用户主目录
cd ~
# 把容器中配置文件复制到当前目录
docker cp mysql-test:/etc/mysql/my.cnf ./
# 修改配置文件(宿主机器)
vim my.cnf
找到 [mysqld]
,并在 datadir
下面另加一行 default-time_zone = '+8:00'
即可,然后保存并退出。
【注】default-time_zone = '+8:00'
比较简单,如果想更容易理解的话也可以:default-time_zone = 'Asia/Shanghai'
,都是一样的效果。
docker cp my.cnf mysql-test:/etc/mysql/my.cnf
docker restart mysql-test
进入 docker
容器内部更多信息请移步:Docker 进入容器,并在容器内执行命令
【注】最佳实践
个人博客:Roc’s Blog
[TOC]下面的测试代码使用的都是下面的topic:$ kafka-topics.sh --describe hadoop --zookeeper uplooking01:2181,uplooking02:2181,uplooking03:2181Topic:hadoop PartitionCount:3 ReplicationFactor:3 Configs:...
日期:2012-12-3来源:GBin1.com在过去的文章中我们推荐过很多关于Wordpress主题的文章,有兴趣可以点击这里查看到更多。今天,我们要推荐以自由为主风格的16款免费主题,这些充满活力的网站设计一定会让你心动。希望大家喜欢!1. Prospect在线演示 | 更多信息Prospect是一款免费的以商用和投资组合为主题的内容,它是一款看起来非常干净的响应式设计...
**知识点:linux常用命令方法概要:更改/etc/sysconfig下的network文件,在提示符下输入vi /etc/sysconfig/network,然后将HOSTNAME后面的值改为想要设置的主机名。步骤:1、右键单击桌面,左键单击Open in Terminel 2、输入vi /etc/sysconfig/network(表示编辑文件network),回车 3、按i字母键,进入插入..._linux主机名修改后影响通信么
栈的定义栈:时限定只在表尾进行插入或删除的线性表。所以栈也成为后进先出的线性表表头为栈底,表尾为栈顶,不含元素的空表为空栈顺序栈的实现顺序栈是指利用顺序存储结构实现的栈,即 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时利用数组下标top指示栈顶元素在顺序栈中的位置。因为C语言中数组下标从0开始,这里以top = -1表示空栈。顺序栈的数据结构:#define maxStackNum 100typedef struct{ int* data; //栈元素指针 int to_void stackpop(mystack* obj)和void stackdisplay(mystack* obj)
文章目录Already defined locallyAlready had ELSE clauseAlready have base registerAlready have index registerBlock nesting errorByte register is illegalCan't override ES segmentCan't reach with segment regCan't use EVEN on BYTE segmentConstant was expectedCS reg_improper operand type汇编
执行 taro init myApp 报错无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\taro.ps1,因为在此系统上禁止运行脚本。taro : 无法加载文件 C:\Users\小迈\AppData\Roaming\npm\taro.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置
平时生活工作中,会遇到去掉照片背景的需求,如果你是PS高手,可以用ps解决,如果不是呢,或者对去背景的要求不高,还有一些电商平台,产品图必须是白底的,怎么才能快速批量处理呢,一个一个抠图,太慢了。会了python后,调用removebg接口,分分钟帮你去掉大量照片背景。_图片白底api
MATLAB 模型预测控制工具箱函数 8.2 系统模型建立与转换函数前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用方 法,为时行模型预测控制器的......MATLAB 模型预测控制工具箱函数 8.2 系统模型建立与转换函数 前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用 方法,为时行模型预测控制器的......T-S模糊辨识与广义预测控制(GPC)MA..._gpc广义预测控制仿真matlab
转载地址:http://www.cnblogs.com/zhw511006/archive/2012/09/21/2696700.html首先导入CoreText.framework,并在需要使用的文件中导入:#import创建一个NSMutableAttributedString:NSMutableAttributedString *attri
要区分这三个概念,需要先讲一下损失函数L(Y,f(x))的概念。损失函数:针对单个具体样本,表示模型预测值与真实样本值之间的差距。损失函数越小,说明模型对于该样本预测越准确。常见损失函数有0-1损失函数、平方损失函数、绝对损失函数、对数损失函数(对数似然损失函数)。经验风险:对所有训练样本都求一次损失函数,再累加求平均。即,模型f(x)对训练样本中所有样本的预测能力。...
vue+elementUI日期选择组件
假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people = [[7,0],[4.._根据身高重建队列 贪心