Docker安装配置MySQL的实现步骤
目录
- 前言
- 环境
- 安装
- 创建并启动MySQL容器
- 提醒
- 创建并启动MySQL容器命令
- 参数说明:
- 进入到MySQL容器内部进行配置
- 进入命令
- 连接MySQL
- 更改MySQL密码
- 测试连接
前言
MySQL 是世界上最受欢迎的开源数据库,So~本文将演示如何在Docker上安装并且配置MySQL。

环境
- CentOS 7
- Docker 20.10.10
安装
拉取镜像
docker pull mysql
如果要指定版本,在mysql后面加上:+版本号,例如:
docker pull mysql:8.0.16
这里直接拉取最新版MySQL

查看镜像
docker images

创建并启动MySQL容器
创建数据目录和配置文件
提前在宿主机创建好放置mysql的配置文件的目录和数据目录,并且进行授予权限,避免挂载外部配置和数据时启动失败:

创建放置mysql的配置文件的目录和数据目录
mkdir -p /mydata/mysql/
设置文件夹权限
chmod -R 755 /mydata/mysql
第一个数字表示文件所有者的权限 第二个数字表示与文件所有者同属一个用户组的其他用户的权限 第三个数字表示其它用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1) 。
综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。 所以,chmod
755 设置用户的权限为:
1.文件所有者可读可写可执行 --7
2.与文件所有者同属一个用户组的其他用户可读可执行 --5
3.其它用户组可读可执行
创建my.cnf配置文件
mkdir -p /mydata/mysql/conf touch /mydata/mysql/conf/my.cnf
编辑my.cnf配置文件
vi /mydata/mysql/conf/my.cnf
添加以下配置内容
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve secure_file_priv=/var/lib/mysql
提醒
无论你是否使用我的配置,如果你的安装的是新版MySQL,务必要复制这一句:
secure_file_priv=/var/lib/mysql
第一次创建启动MySQL容器的时候,MySQL会访问/var/lib/mysql文件夹,如果没有权限就会导致无法启动,使用docker ps之后看不到mysql容器在运行,需要设置secure_file_priv的值指定为/var/lib/mysql,这样就有权限正常访问和读写/var/lib/mysql目录
Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Suppliedvalue : /var/lib/mysql-files
译文:无法访问–secure-file-priv的目录。请确保该目录存在并且可由MySQL服务器访问。提供的值:/var/lib/mysql文件
- secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
- secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
- secure_file_priv的值为空,表示不对mysqld 的导入|导出做限制
创建并启动MySQL容器命令
sudo docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:latest
参数说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口--name mysql:定义容器名称为mysql-v /mydata/mysql/log:/var/log/mysql:将MySQL的日志文件夹挂载到主机-v /mydata/mysql/data:/var/lib/mysql:将MySQL的数据文件夹挂载到主机-v /mydata/mysql/conf:/etc/mysql:将MySQL的配置文件夹挂载到主机-e MYSQL_ROOT_PASSWORD=root:初始化root用户密码-d mysql:latest:选择MySQL版本为latest的镜像构建容器

查看正在运行的容器
docker ps

进入到MySQL容器内部进行配置
进入命令
docker exec -it 容器id ./bin/bash

连接MySQL
这里因为我们自己设置的MySQL默认密码为root所以p后面为root
mysql -uroot -proot

更改MySQL密码
使用mysql库
use mysql
修改访问主机以及密码等,设置为所有主机可访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
注意:mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接
测试连接
测试前请保证关闭了防火墙,如果是云服务器记得开放3306规则
Linux关闭防火墙
# 关闭 systemctl stop firewalld # 禁止开机启动防火墙 systemctl disable firewalld
云服务开放3306端口

使用Navicat测试连接

使用SQLyog测试连接

Docker安装和配置MySQL教程结束!
以上就是Docker安装配置MySQL的实现步骤的详细内容,更多关于Docker 安装MySQL的资料请关注其它相关文章!
栏 目:其它服务器
下一篇:详解docker-compose.yml文件常用模版命令
本文标题:Docker安装配置MySQL的实现步骤
本文地址:https://zz.feitang.co/server/33186.html
您可能感兴趣的文章
- 01-12Docker部署rabbitmq遇到的两个问题
- 01-12最新虚拟机VMware 14安装教程
- 01-12使用docker compose安装harbor私有仓库的详细教程
- 01-12Windows下Docker安装各种软件的详细过程
- 01-12seata docker 高可用部署的详细介绍
- 01-12浅谈Tomcat多层容器的设计
- 01-12Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
- 01-12解决vscode docker插件docker.socket权限问题
- 01-12Docker中运行PostgreSQL并推荐几款连接工具
- 01-12Docker核心原理之 Cgroup详解


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-05Docker安装Jenkins全过程
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法




