> 技术文档 > 【Docker】安装MYSQL_docker 安装mysql

【Docker】安装MYSQL_docker 安装mysql

目录

1.拉取镜像

2. 查看镜像

3.宿主机创建目录

        3.1创建配置文件

4.更改权限

5.启动容器

        5.1.修改端口       

        5.2.重新启动

6.修改mysql密码 

        6.1.进入MySQL容器

        6.2.登录MySQL

        6.3.修改密码

        6.4.退出MySQL和容器


 

1.拉取镜像

        本次拉取的是mysql8.3.0版本。

#:8.3.0是指版本号,需要哪个版本拉哪个版本docker pull mysql:8.3.0

        响应内容

2. 查看镜像

        查看拉取的镜像。

docker images#或者 docker images mysql:8.3.0

        响应内容

3.宿主机创建目录

        用于挂载mysql容器内目录

#创建home目录下mysql文件夹和mysql里的conf,data,log三个文件夹mkdir -p /home/mysql/{conf,data,log}

        响应内容

        3.1创建配置文件

cd /home/mysql/confvim my.cnf

        回车后复制以下内容到编辑区

[client]#设置客户端默认字符集utf8mb4default-character-set=utf8mb4[mysql]#设置服务器默认字符集为utf8mb4default-character-set=utf8mb4[mysqld]#配置服务器的服务号,具备日后需要集群做准备server-id = 1#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备log-bin=mysql-bin#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数binlog_expire_logs_seconds = 2592000#解决MySQL8.0版本GROUP BY问题sql_mode=\'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\'#允许最大的连接数max_connections=1000# 禁用符号链接以防止各种安全风险symbolic-links=0# 设置东八区时区default-time_zone = \'+8:00\'

        复制完成后,按键盘 ESC 键退出输入,输入:wq保存退出。

        响应内容

4.更改权限

        给mysql目录配置读写权限,没配置后面会启动不成功。

        点击mysql目录的文件夹 ,如 home/mysql 、log、data 和 conf 。如果后面还是无法启动成功可以把 etc 和 var 文件权限设置可读写看看。

5.启动容器

        输入一下命令配置端口映射、挂载和设置mysql密码后运行即可运行 mysql

docker run \\-p 3399:3306 \\--restart=always \\--name mysql \\--privileged=true \\-v /home/mysql/log:/var/log/mysql \\-v /home/mysql/data:/var/lib/mysql \\-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \\-e MYSQL_ROOT_PASSWORD=Kevin97. \\-d mysql:8.3.0

        

  • -p  3399:3306      表示端口映射
  • --restart=always         表示容器退出时总是重启
  • --name mysql        表示容器命名
  • --privileged=true         表示赋予容器权限修改宿主文件权利
  • -v /home/mysql/log:/var/log/mysql         表示容器日志挂载到宿主机
  • -v /home/mysql/data:/var/lib/mysql         表示容器存储文件挂载到宿主机
  • -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf         表示容器配置文件挂载到宿主机
  • -e MYSQL_ROOT_PASSWORD=Kevin97.        表示设置mysql的root用户密码,建议用强密码
  • -d表示后台运行

        5.1.修改端口       

        后期如需修改新端口则可停止并移除现有的容器。

docker stop mysqldocker rm mysql

        响应内容

       

        5.2.重新启动

        移除后重新按照上面启动容器步骤执行。 

        响应内容

6.修改mysql密码 

        如需修改mysql密码可根据下面步骤操作。

        6.1.进入MySQL容器

                使用docker exec命令进入正在运行的MySQL容器。假设你的容器名为mysql

docker exec -it mysql bash

                如果容器内没有bash,可以先下载 nmap

sudo yum install nmap

                也可不下载 nmap 直接使用 sh:

docker exec -it mysql sh

        6.2.登录MySQL

                在容器内部执行如下命令以root身份登录MySQL(如果你之前设置了root密码,请记得输入密码,输入时为了密码安全控制台是不显示的输入好后按回车即可)。

mysql -u root -p

        响应内容

        6.3.修改密码

                在MySQL提示符下,执行SQL语句修改root用户的密码。

ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'新密码\';FLUSH PRIVILEGES;

                如果你需要从任何主机连接到MySQL服务器,可以使用:

ALTER USER \'root\'@\'%\' IDENTIFIED BY \'新密码\';FLUSH PRIVILEGES;

        响应内容

        6.4.退出MySQL和容器

                输入exit;退出MySQL客户端,然后再次输入exit退出容器shell。(或者按快捷键CTRL+D)