Docker安装MySql8
Docker安装MySql8
1,安装Docker
yum install -y docker
yum list installed | grep docker
注:-y表示不再询问,使用默认配置进行安装。
配置docker加速器
1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ht4d19n9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. 启动Docker服务
systemctl start docker
systemctl status docker
docker images
3. 使用Docker安装MySQL
docker pull mysql:8.0
注:docker pull 默认到官方参考拉取 mysql:8.0 镜像名:镜像tag,官方地址为国外地址,下载速度缓慢可进行配置。
vi /etc/docker/daemon.json
注:insert编辑内容如下所示,并以wq保存并退出。
{ "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] }
修改完毕后重启Docker服务。
systemctl restart docker
docker images
4. 启动MySQL镜像(创建数据库实例)
docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 --lower_case_table_names=1
注:
• –name 为服务启动别名设置
• -p 端口映射 宿主机端口:镜像运行端口
• -d 镜像名:tag 使用守护进程模式启动
• -e 设置root账号密码
• --lower_case_table_names=1 0:区分大小写,1:不区分大小写
docker ps -a
5. 进入镜像运行MySQL
docker exec -it mysql8.0 /bin/bash
cd /usr/bin
/usr/bin# mysql -u root -p
show variables like "%case%";
注:exec docker进入容器命令 -it 容器中服务别名 /bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式
*****************************************************************************************
此时你还无法使用工具访问MySql,会提示2003错误;因为MySQL默认是不能进行远程访问的,需要我们去设置,操作如下:
mysql -u root -p;
use mysql;
update user set host='%' where user='root';
授权MySql远程访问;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
现在我们尝试使用工具去连接MySql还是会提示2003错误;各种百度后发现是阿里云安全规则限 制;
修改阿里云的安全规则,开放3306端口;
再次尝试连接发现提示2058错误,上面已经说了,MySql 8.0 以后修改了密码规则;所以我们得修改一下规则;
ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
你的密码指的是你重新设置的密码,一定要符合MySql 8.0的密码要求;否则会设置失败;
刷新下权限
alter user 'root'@'%' identified by 'root123' password expire never;
alter user 'root'@'%' identified with mysql_native_password by 'root123';
FLUSH PRIVILEGES;
**********************************************************************************************
使用命令开启CentOS的防火墙;
systemctl start firewalld.service
查看3306端口是否放行(yes表示放行,no表示不允许)
firewall-cmd --query-port=3306/tcp
开放MySql 3306端口;
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启firewall
systemctl restart firewalld.service
设置自启动
docker update --restart=always 容器id
将MySql服务加入到开机启动项,并重启MySql服务;
systemctl enable mysqld.service
systemctl restart mysqld.service
至此Doker中安装使用MySQL 8.0完成。
6. 其他命令
# 删除安装包
yum remove -y 安装包名
# 停止/开始服务
systemctl start docker
systemctl stop docker
# 移除已经安装的镜像
docker rmi 镜像名:tag or 镜像id
# 停止/启动/删除容器服务
docker stop 容器服务别名 or 容器id
docker start 容器服务别名 or 容器id
docker rm 容器服务别名 or 容器id
更多推荐
所有评论(0)