【10分钟轻松部署,通过Docker部署MySQL8.3.0数据库】

在这里插入图片描述


前言

Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。


一、Linux部署Docker

1.1 安装系统依赖

# 更新系统
sudo dnf update -y
# 安装Docker依赖
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加Docker官方仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

1.3 安装Docker引擎

sudo dnf install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker && sudo systemctl enable docker

1.4 配置用户权限

sudo usermod -aG docker $USER
newgrp docker  # 刷新用户组

1.5 配置daemon.json加速器

daemon.json文件中配置较多的地址,便于后期拉取更多镜像不报错。

#创建文件
mkdir -p /etc/docker

#创建docker加速器文件
vim /etc/docker/daemon.json

#复制配置内容
{
  "registry-mirrors": [
   "https://dockerpull.org",
    "https://docker.1panel.dev",
    "https://docker.foreverlink.love",
    "https://docker.fxxk.dedyn.io",
    "https://docker.xn--6oq72ry9d5zx.cn",
    "https://docker.zhai.cm",
    "https://docker.5z5f.com",
    "https://a.ussh.net",
    "https://docker.cloudlayer.icu",
    "https://hub.littlediary.cn",
    "https://hub.crdz.gq",
    "https://docker.unsee.tech",
    "https://docker.kejilion.pro",
    "https://registry.dockermirror.com",
    "https://hub.rat.dev",
    "https://dhub.kubesre.xyz",
    "https://docker.nastool.de",
    "https://docker.udayun.com",
    "https://docker.rainbond.cc",
    "https://hub.geekery.cn",
    "https://docker.1panelproxy.com",
    "https://atomhub.openatom.cn",
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run",
    "https://docker.linkedbus.com"
  ]
}

#加载文件生效
systemctl daemon-reload
systemctl restart docker

1.6 查看Docker状态及版本

在这里插入图片描述

二、部署MySQL8.3.0数据库

2.1 查询数据库

代码如下(示例):

docker search mysql

2.2 拉取MySQL8.3.0镜像

代码如下(示例):

#拉取镜像
docker pull mysql8.3.0
#查看docker已拉取镜像
docker images

在这里插入图片描述

2.3 主机上创建日志、数据、配置文件夹

代码如下(示例):

mkdir -p /home/mysql/log
mkdir -p /home/mysql/data
mkdir -p /home/mysql/conf

在这里插入图片描述

2.4 创建配置文件my.cnf

vim /home/mysql/conf/my.cnf

按键盘 i键进行输入以下内容:

[client]
#设置客户端默认字符集utf8mb4
default-character-set=utf8mb4
[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数
binlog_expire_logs_seconds = 2592000
#解决MySQL8.0版本GROUP BY问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#允许最大的连接数
max_connections=1000
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'

按键盘esc键退出输入,输入:wq保存退出

2.5 运行MySQL8.3.0服务

-p:表示声明端口,宿主机与容器内端口一一对应;--restart=always:表示服务器开机自动启动服务;--name:表示声明服务的名称;--privileged=true:表示使container内的root拥有真正的root权限。-v:表示将宿主机的文件映射到容器内,分别映射日志文件、数据文件、配置文件;-e:表示配置root密码;-d:表示通过mysql8.0镜像运行服务。

代码如下(示例):

docker run \
-p 3306:3306 \
--restart=always \
--name mysql \
--privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=Ya34ng0okm \
-d mysql:8.3.0 

2.6 查看mysql8.3.0服务

代码如下(示例):

#查看docker服务
docker ps -a
#启动某个服务
docker start 服务名称或id

在这里插入图片描述

三、MySQL8.3.0实战

3.1 进入数据库

代码如下(示例):

docker exec -it mysql /bin/bash

3.2 登录数据库并输入密码

代码如下(示例):

mysql -u root -p

在这里插入图片描述

3.3 创建一个账号-admin,用来进行远程访问;

代码如下(示例):

CREATE USER 'admin'@'%' IDENTIFIED BY '9ujjk9yh8tg';

3.4 赋予所有权限给之前创建的账号:admin

代码如下(示例):

GRANT ALL ON *.* TO 'admin'@'%';

3.5 配置用户密码为mysql_native_password 模式,即可远程连接:

代码如下(示例):

ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '9ujjk9yh8tg';

3.6 刷新权限

代码如下(示例):

FLUSH PRIVILEGES;

3.7 创建数据库以及表

代码如下(示例):

#创建数据库 mytest
create database mytest;

#切换到mytest数据库
use mytest;
 
#创建表结构sys_myfirst
create table sys_mytest (
	id int,
	name varchar(8),
	birth date,
	sex varchar(4)
);
 
#在sys_mytest中添加几条数据(建议在Navicat工具中操作)
INSERT INTO sys_mytest (id,name,birch,sex) VALUES (1,'乔峰','1990-01-01','男'),(2,'段誉','1990-12-21','男'),(3,'孙悟空','1990-05-20','男'),(4,'猪八戒','1990-08-06','男'),(5,'周芷若','1991-12-01','女'),(6,'步惊云','1992-03-01','女'),(7,'陈真','1989-07-01','女'),(8,'宁姚','1990-01-20','女');

 
#查看数据
select * from sys_myfirst;

#查看表结构
desc sys_mytest;

在这里插入图片描述

3.8 连接Navicat工具

在这里插入图片描述

3.9 点击“测试连接”是否成功

在这里插入图片描述

3.10 Navicat工具操作

在这里插入图片描述


### 在 Windows 上通过 Docker 部署 MySQL 容器 为了在 Windows 上成功部署 MySQL 容器,需先确认已安装 Docker Desktop 并设置为使用 Linux 容器模式。之后,在 PowerShell 中执行特定命令来启动带有指定配置的 MySQL 实例。 #### 启动 MySQL 容器的具体命令如下: ```powershell docker run -itd -p 3306:3306 ` --restart always ` --name mysql-8.3.0 ` -v C:\ProgramDatas\Docker\Containers\mysql-8.3.0\data:/var/lib/mysql ` -v C:\ProgramDatas\Docker\Containers\mysql-8.3.0\conf.d:/etc/mysql/conf.d ` -e MYSQL_ROOT_PASSWORD=123abcABC@! ` mysql:8.3.0 ``` 上述命令中设置了端口映射、容器重启策略、命名以及挂载主机目录至容器内部用于持久化存储和自定义配置文件[^1]。此外,还指定了根用户的密码环境变量以确保初次访问的安全性。 对于希望简化操作流程的情况,也可以采用较为基础的方式创建并运行 MySQL 容器实例: ```powershell docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:8.0.24 ``` 这条指令同样实现了 MySQL 的快速上线,不过未涉及额外的数据卷绑定与高级选项设定[^2]。 #### 关键点说明 - **端口转发**:`-p 3306:3306` 表示将宿主机上的 3306 端口映射给容器内的相同端口号;若存在冲突可调整外部端口编号。 - **自动重启机制**:`--restart always` 参数保证即使遇到意外情况也能让服务保持在线状态。 - **持久化保存数据**:利用 `-v` 参数关联本地磁盘位置到 `/var/lib/mysql` 和 `/etc/mysql/conf.d` 路径下,从而实现数据库资料及配置项的有效保护。 - **安全性考量**:通过 `-e MYSQL_ROOT_PASSWORD=` 来预设 root 用户登录凭证,增强初始连接时的身份验证强度。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值