ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Docker 安装 Mysql 5.7

2020-06-21 14:04:27  阅读:175  来源: 互联网

标签:容器 5.7 Mysql 访问 mysql Docker docker


背景

阿里云基础版 RDS 最近因为大数据量查询经常宕机(阿里云工单回复是 OOM,让升级高可用版本~),导致日常办公软件(Crowd,Jira,Confluence等)无法使用,所以在 ECS 搭建本地 Mysql。

验证环境

  • Centos 7.7
  • Docker 1.13.1

拉取镜像

# 搜索 Mysql 镜像
$ docker search mysql

# 下载 Mysql 5.7 镜像
$ docker pull mysql:5.7

# 查看下载镜像
$ docker images

运行容器

# 运行 Mysql 容器
$ docker run -d 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=daodaotest mysql:5.7

# 运行 Mysql 容器,映射目录,设置必须 Mysql 参数
$ docker run -d -p 3306:3306 --name mysql \
-v /home/mysql/mysql/conf:/etc/mysql \
-v /home/mysql/mysql/logs:/var/log/mysql \
-v /home/mysql/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=daodaotest \
mysql:5.7 \
--lower_case_table_names=1 \
--max-allowed-packet=1073741824 \
--character_set_server=utf8 \
--innodb_log_file_size=256m

Docker 参数说明:

  • -d:后台运行容器,并返回容器 ID
  • -p:指定端口映射,格式为:主机(宿主)端口:容器端口
  • --name:容器名称,此处为mysql
  • -v:宿主机和容器的目录映射关系,“:” 前为宿主机目录
  • -e:配置信息,此处配置 Mysql 的 root 密码

Mysql 参数说明(业务需要设置):

  • lower_case_table_names=1:设置表名参数名等忽略大小写,解决 Crowd 无法识别大写表名问题
  • max-allowed-packet=1073741824:设置最大插入和更新数据限制为 1G(1024 * 1024 * 1024 = 1073741824),单位:字节,解决 Confluence 数据迁移时大数据插入问问
  • character_set_server=utf8:设置 utf8字符集,解决 Confluence 添加修改中文乱码问题
  • innodb_log_file_size=256m:设置日志文件大小,Confluence 健康检查推荐大小
# 查看容器运行情况
$ docker ps

# 查看 log
$ docker logs -f mysql

访问 Mysql 服务

容器内访问

# 进入容器
$ docker exec -it mysql bash

# 容器内,访问 Mysql 服务
$ mysql -uroot -pdaodaotest

宿主机访问

# 仅安装 Mysql 客户端
$ rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
$ yum install mysql-community-client.x86_64

# 宿主机访问
$ mysql -h 127.0.0.1 -uroot -pdaodaotest

# 设置 root 用户允许远程访问
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'daodaotest' WITH GRANT OPTION;
> FLUSH PRIVILEGES;

局域网访问

# 前提需要设置 root 远程访问权限
$ mysql -h 192.168.x.x -uroot -pdaodaotest

微信公众号:daodaotest

标签:容器,5.7,Mysql,访问,mysql,Docker,docker
来源: https://www.cnblogs.com/daodaotest/p/13172272.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有