跳到主要内容

单节点

2024年06月16日
柏拉文
越努力,越幸运

一、认识


二、操作


2.1 搜索 MySQL 可用版本

docker search mysql 

2.2 拉取 MySQL 指定镜像

Mac 下载镜像镜像

docker pull mysql/mysql-server

Linux 下载镜像

docker pull mysql

本地通过 save 导出镜像,远程通过 load 加载镜像

# 本地通过 save 导出镜像
docker save -o mysql-server.tar mysql/mysql-server:latest
# 本地通过 scp 传输镜像
scp mysql-server.tar root@192.168.105.132:/root
# 远程通过 load 加载镜像
docker load -i mysql-server.tar

2.3 运行 MySQL 本地容器

docker run -d --name mysql -p 3306:3306 -v ~/docker/mysql/log:/var/log/mysql -v ~/docker/mysql/data:/var/lib/mysql -v ~/docker/mysql/conf:/etc/mysql -v ~/docker/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql/mysql-server:latest
  • docker run: 创建一个新的容器 , 同时运行这个容器

  • -d: 后台运行

  • -–name mysql: 启动容器的名字

  • -p 3306:3306: 将容器的 3306 (后面那个) 端口映射到主机的 3306 (前面那个) 端口

  • -v /mydata/mysql/log:/var/log/mysql: 将日志文件夹挂载到主机

  • -v /mydata/mysql/data:/var/lib/mysql: 将mysql储存文件夹挂载到主机

  • -v /mydata/mysql/conf:/etc/mysql: 将配置文件夹挂载到主机

  • -v ~/docker/mysql/conf.d:/etc/mysql/conf.d

  • -e MYSQL_ROOT_PASSWORD=root: 设置 root 用户的密码

  • [MySQL 镜像名称]: 启动哪个版本的 mysql (本地镜像的版本)

2.4 进入 MySQL 本地容器

docker exec -it 容器ID /bin/bash 或者 docker exec -it 容器ID bash 进入 MySQL 本地容器

docker exec -it 容器ID /bin/bash

// 或者

docker exec -it 容器ID bash

通过 exit 退出 mysql 容器

2.5 本机连接 MySQL 服务

mysql -uroot // 无密码登录

// 或者

mysql -uroot -p // 使用密码登录

通过 exit 退出 mysql

2.6 宿主机连接 MySQL(可选)

从本地连接到远程的 MySQL 服务。默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。操作如下:

1. 更新 mysql 数据库中 user 表的 Host 字段,以更改 root 用户的 Host: 将 root 用户的 Host 地址从默认的 @ 修改为 % 任意的 IP 地址, 目的是为了允许 root 用户从任何主机连接到 MySQL 数据库服务器。

# 1. 查看数据库
show databases;
# 2. 使用 mysql
use mysql;
# 3. 更新 user 表
update user set Host='%' where User='root';
# 4. 刷新数据库
flush privileges;  

2. 更新 mysql 数据库中 user 表的 mysql_native_password 字段,以更改 root 用户的 mysql_native_password: 目的是为了更改 MySQL 数据库中 root 用户的认证方式和密码,这样的话,可以允许任何主机使用该密码连接该 Mysql 服务

# 1. 查看数据库
show databases;
# 2. 使用 mysql
use mysql;
# 3. 更新 `mysql` 数据库中 `user` 表的 `mysql_native_password` 字段,以更改 `root` 用户的 `mysql_native_password`
alter user 'root'@'%' identified with mysql_native_password by '123456';
# 4. 刷新数据库
flush privileges; 

3. 宿主机端通过 mysql 连接远程的 MySQL 服务

# Mac 系统
brew install mysql // 或者直接通过安装包安装也可以

# Linux 系统
yum install -y mysql

# 连接 MySQL 服务
mysql -h127.0.0.1 -uroot -P3306 -p123456

// 或者
mysql -h远程IP地址 -uroot -P3306 -p123456

2.7 可视化工具连接 MySQL(可选)

从本地连接到远程的 MySQL 服务。默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。操作如下:

1. 更新 mysql 数据库中 user 表的 Host 字段,以更改 root 用户的 Host: 将 root 用户的 Host 地址从默认的 @ 修改为 % 任意的 IP 地址, 目的是为了允许 root 用户从任何主机连接到 MySQL 数据库服务器。

# 1. 查看数据库
show databases;
# 2. 使用 mysql
use mysql;
# 3. 更新 user 表
update user set Host='%' where User='root';
# 4. 刷新数据库
flush privileges;  

2. 更新 mysql 数据库中 user 表的 mysql_native_password 字段,以更改 root 用户的 mysql_native_password: 目的是为了更改 MySQL 数据库中 root 用户的认证方式和密码,这样的话,可以允许任何主机使用该密码连接该 Mysql 服务

# 1. 查看数据库
show databases;
# 2. 使用 mysql
use mysql;
# 3. 更新 `mysql` 数据库中 `user` 表的 `mysql_native_password` 字段,以更改 `root` 用户的 `mysql_native_password`
alter user 'root'@'%' identified with mysql_native_password by '123456';
# 4. 刷新数据库
flush privileges; 

3. 随后通过 Navicat Premium 连接 Docker MySQL: 主机名为 localhost, 端口为 3306, 用户名为 root, 密码为 root, 点击连接即可。