目录
安装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