Docker安装MySQL。
Docker拉取MySQL镜像
前提要安装好Docker哈~~~
docker pull mysql:5.7
Docker运行MySQL
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 e1e1680ac726
8aa1b356648e8e54ff01475a9412c1669021540ca8b7f8225808af4c55be4160
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8aa1b356648e e1e1680ac726 "docker-entrypoint..." 6 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 5.7 e1e1680ac726 2 weeks ago 373 MB
其中,e1e1680ac726为镜像id,使用 docker images 可查看。
连接测试
使用Navicat创建MySQL连接,然后输入对应的ip,数据库信息,连接即可。
MySQL8.0使用navicat连接方式升级不能连接问题
连接时出现这样的提示:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:??????
通过Docker进入容器的Bash更改数据库的连接方式
[root@localhost ~]# docker exec -it mysql8 bash
root@599ce281ef9b:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.17 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql>
然后再连接即可。
详细配置
下载镜像文件
# 拉取镜像
sudo docker pull mysql:5.7
# 查看全部镜像
sudo docker images
创建实例并启动
# 切换成root用户
su root
# 创建并运行容器
docker run -d -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7
# 参数说明
# -d 后台运行
# -p 端口映射
# -v 卷挂载
# -e 环境配置
# --name 容器名字
# 查看运行的容器
docker ps
修改配置文件
vim 修改 /mydata/mysql/conf/my.conf 下的 mysql 配置文件
# 如果没有 vim 命令则安装 vim
yum install vim
# 进入配置文件
vim /mydata/mysql/conf/my.conf
# 文件内容
[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
# 重启容器
docker restart mysql
进入容器
每个容器,相当于在 linux 内开辟一个小型的 linux
通过 docker exec -it 容器id/容器名 bin/bash
进入容器
可看到与linux系统相同的目录结构
在容器中可以使用 ctrl + p + q
返回 linux ,这时容器并不会停止运行
然后使用可视化工具连接即可,比如说 navicat 或者 sqlyog
评论区