Docker部署Mysql8数据库

目录

安装Docker

1.下载并在线安装

2.安装后查看Docker版本

3.启动、停止、重启等命令

下载Mysql数据库

1.搜索Mysql镜像

2.拉取Mysql数据库

3.创建启动容器

4.登录Mysql

解决Mysql8密码验证方式

 解决NaviCat执行报错

解决Linux数据库大小写问题


安装Docker

1.下载并在线安装

yum install docker

2.安装后查看Docker版本

docker -v

3.启动、停止、重启等命令

启动docker:service docker start
停止docker:service docker stop
重启docker:service docker restart
查看docker状态:service docker status

开机启动:chkconfig docker on 
开机启动:systemctl enable docker.service

下载Mysql数据库

在安装并启动Docker之后

1.搜索Mysql镜像

docker search mysql

2.拉取Mysql数据库

docker pull mysql

拉取速度慢可以使用国内站点 例如:使用ustc中国科学技术大学的镜像

首先vim进入到daemon.json 没有就手动创建

vim /etc/docker/daemon.json  

输入

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

3.创建启动容器

查看镜像ID

docker images
docker run -id --name=mysql8 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=333 镜像ID
参数描述
-p代表端口映射,格式为 宿主机映射端口:容器运行端口
-e代表添加环境变量 MYSQL_ROOT_PASSWORD 是设置root用户的登陆密码

可以查看下已启动的容器

docker ps 

4.登录Mysql

首先从宿主机进入容器

docker exec -it 容器名称 (或者容器ID)  /bin/bash
参数描述
-i表示运行容器
-t表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录上去。

登录Mysql

mysql -u root -p

输入密码

登录成功后查看版本

select version();

解决Mysql8密码验证方式

mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。
从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。
客户端不支持新的加密方式。

 先登录Mysql

mysql->输入

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '333';
//刷新
flush privileges;

 解决NaviCat执行报错

先登录Mysql

mysql->输入

select @@global.sql_mode;
set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

解决Linux数据库大小写问题

Linux服务器默认区分大小写需要对Mysql容器中etc/mysql/my.cnf文件进行修改 但是有操作限制vim不了只能cat查看

docker stop 容器ID

先将my.cnf文件拷贝到宿主机root

docker cp 容器ID:/etc/mysql/my.cnf ~

回到[root@VM-16-7-centos ~]

进入my.cnf修改

vim my.cnf

在[mysqlId]下插入

lower_case_table_names=1

 

再将宿主机修改后的文件cp回容器

docker cp my.cnf 容器ID:/etc/mysql/my.cnf

 退出重启容器 成功重启说明修改完成

docker restart 容器ID

Mysql8修改my.cnf可能会无法重启

翻看MySQL官方文档发现

lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited.

经过尝试,只有在安装完成之后,初始化数据库之前,修改my.cnf
然后再初始化数据库才有效

如果你不在意数据的话直接删除数据
1 停止MySQL
2 删除 MySQL的数据 /var/lib/mysql
3 修改该 lower_case_table_names = 1
4 启动 mysql

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值