企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 1. 前提是Docker已经安装好了 > 没有安装的可以看这篇文章-->[# centos7安装docker](http://kanclouds.roes.top/linux/1592928) #### 2.拉取mysql镜像 ```shell docker pull mysql:5.7 docker images ``` * 宿主机创建几个文件夹用于容器文件挂载 ```shell mkdir -p /home/service/mysql/data mkdir -p /home/service/mysql/conf/my.cnf ``` 在my.cnf追加如下数据 ``` [mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password default-time_zone = '+8:00' [client] default-character-set=utf8 [mysql] default-character-set=utf8 ``` * 然后运行命令启动mysql ``` docker run -p 3306:3306 --name mysql \ -v /home/service/mysql/data:/var/lib/mysql \ -v /home/service/mysql/conf/my.cnf:/etc/my.cnf \ -e MYSQL_ROOT_PASSWORD=123456\ -e TZ=Asia/Shanghai \ -d mysql ``` ``` docker run -p 3306:3306 --name mysql -v /home/service/mysql/logs:/logs -v /home/service/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql ``` > 命令讲解 > ```-p``` 3306:3306:将容器的3306端口映射到主机的3306端口 > ```-e``` MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码 > ```-e``` TZ=Asia/Shanghai 修改容器默认时区为上海 > ```-v```=/mysqltest/config/my.cnf:/etc/my.cnf:映射配置文件 > ```-v```=/mysqltest/data:/var/lib/mysql:映射数据目录 注意:不同mysql版本可能配置文件目录和路径不一样,mysql5.7的容器路径为 /etc/mysql/mysql.conf.d/mysqld.cnf。 * 进入容器 ```shell docker exec -it mysql bash ``` * 登陆mysql ```shell mysql -uroot -p ``` ![image.png](https://upload-images.jianshu.io/upload_images/7100414-ac556c2879060cb5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * 创建mysql用户 ```mysql CREATE USER 'admin'@'%' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'admin'@'%'; flush privileges; ``` * 然后就可以使用admin用户登陆了,因为mysql8与mysql5.7授权有一些不一样,mysql必须先创建用户才能授权,不然会出错。 ### 3、修改时区 ``` docker exec -it mysql /bin/bash cd /etc/mysql/mysql.conf.d apt-get update apt-get install vim vim mysqld.cnf ``` 加入如下一行 ``` default-time_zone = '+8:00' ``` 或者直接追加写入 ``` echo "default-time_zone = '+8:00'" >> mysqld.cnf ``` * 修改时区 在我们备份数据库的时候,有用到时间因素,但是 Docker 容器中默认为 +0 时区,而我们是 +8 时区,我们将宿主机的时区文件映射过去就行。 ``` -v /etc/localtime:/etc/localtime:ro ``` 退出容器重启容器 ``` docker restart mysql ``` 查看时区命令 ```sql show variables like '%time_zone%'; ```