docker安装 mysql 8.0.32

发布时间:2024年01月19日

首先下载 mysql? ? 其次如果虚拟机以前安过mysql? 需要把mysql关闭?

命令? 永久关闭mysql 但是当前不生效 需要重启虚拟机?systemctl enable mysqld? ?

如果不想重启虚拟机? 可以执行? systemctl stop mysqld

//指定版本 ? ? ??
?
docker pull mysql:8.0.32
?
?
// 拉取最新的mysql
docker pull mysql:latest

?二、查看镜像

docker images

?

?三、创建要挂载的文件夹

[root@~]# mkdir -p /opt/docker/mysql8/conf/
[root@~]# mkdir -p /opt/docker/mysql8/logs/
[root@~]# mkdir -p /opt/docker/mysql8/data/?

?# 拷贝一份配置文件,先随便启动一个镜像
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=5255? -d mysql:8.0.32
?
# 启动成功后,进入容器内部拷贝配置文件,到宿主主机
docker cp ?mysql8:/etc/mysql /opt/docker/mysql8/conf
?
# 删除刚才的容器,重新创建容器
# 先停止容器
docker stop mysql8
?
# 再删除容器
docker rm mysql8
?

?

四、执行容器

启动mysql ,挂载配置文件,数据持久化到宿主主机

docker run ?-itd ?-p 3306:3306 --name mysql8 -e character-set-server=utf8mb4 --privileged=true ?--restart unless-stopped ?-v /opt/docker/mysql8/conf/mysql:/etc/mysql ?-v /opt/docker/mysql8/logs:/logs ?-v /opt/docker/mysql8/data:/var/lib/mysql -v /etc/localtime:/etc/localtime ?-e MYSQL_ROOT_PASSWORD=5255 -d mysql:8.0.32 --lower_case_table_names=1

?命令解释:

-p 端口映射
–name 容器名字,自定义
–privileged=true 挂载文件权限设置
–restart unless-stopped 设置 开机后自动重启容器
-v /opt/docker/mysql8/conf/mysql:/etc/mysql 挂载配置文件
-v /opt/docker/mysql8/logs:/logs \ 挂载日志
-v /opt/docker/mysql8/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d mysql:8.0.32 后台启动,mysql
--lower_case_table_names=1 ?要加在镜像名后面,镜像名前面是参数,后面是mysql配置,不然会报错?

查看容器状态

docker ps

五、配置远程连接

?# 进入容器
docker exec -it mysql8 /bin/bash
?
# 打开MySQL 命令行 密码 5255
mysql -uroot -p
?
use mysql;
?
# 创建账户
CREATE USER 'adminx'@'%' IDENTIFIED BY '123456';
?
# 授权账户
GRANT ALL ON *.* TO 'adminx'@'%';
?
# 刷新权限
?
FLUSH PRIVILEGES;

退出 mysql客户端? ?exit 或者ctrl+c

六、密码正确,登录错误?

2、进入容器
$ docker exec -it mysql bash
1
3、修改配置文件
3.1 进入 /etc/mysql/conf.d 文件目录:
?
$ cd /etc/mysql/conf.d
1
3.2 创建MySQL配置文件:mysql.cnf
?
$ touch mysql.cnf
1
3.3 在 mysql.cnf 配置文件中填充以下内容

echo?mysql.cnf?[mysqld] \?skip-grant-tables >>
?
[mysqld]
# 跳过密码登录
skip-grant-tables
1
2
3
3.4 退出容器,重启mysql容器
?
$ exit
$ docker restart mysql

文章来源:https://blog.csdn.net/Mazhen5255/article/details/135707437
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。