单节点
一、认识
二、操作
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
, 点击连接即可。