尚硅谷谷粒商城项目笔记——五、使用docker安装mysql

五、使用docker安装mysql

注意:

因为电脑是AMD芯片,自己知识储备不够,无法保证和课程中用到的环境一样,所以环境都是自己根据适应硬件软件环境重新配置的,这里的虚拟机使用的是VMware。
使用 Docker 安装 MySQL 与安装 Redis 类似,以下是详细步骤:

1拉取 MySQL 镜像:

从 Docker Hub (之前有设置之镜像加速)拉取 MySQL 的官方镜像。可以指定版本号,或者使用 latest 来获取最新版本:

docker pull mysql:latest

2运行 MySQL 容器:

运行 MySQL 容器时,我需要设置环境变量,如 MYSQL_ROOT_PASSWORD(root 用户的密码),并映射端口和数据卷。以下是一个示例命令:

docker run --name some-mysql -p 3306:3306 \
  -v /var/lib/mysql:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_USER=myuser \
  -e MYSQL_PASSWORD=mypassword \
  --restart always -d mysql

[!NOTE]

注意这里的密码的值不要使用root,否则会产生error==>>问题在于我在运行 MySQL 容器时同时设置了 MYSQL_USERMYSQL_PASSWORD 环境变量,但它们的值被设置为了 root。对于 MySQL 容器,MYSQL_USERMYSQL_PASSWORD 是用来配置普通用户的,而不能用来配置 root 用户。对于 root 用户的密码,我应该只使用 MYSQL_ROOT_PASSWORD 环境变量。

参数说明:

  • --name some-mysql:为容器指定一个名称。
  • -p 3306:3306:将容器的 3306 端口映射到宿主机的 3306 端口。
  • -v /var/lib/mysql:/var/lib/mysql:将宿主机的 /var/lib/mysql 目录挂载到容器的 /var/lib/mysql 目录,实现数据持久化。
  • -e:设置环境变量,用于配置 MySQL。
  • --restart always:确保容器在 Docker 重启后自动启动。
  • -d mysql:以 detached 模式运行 MySQL 容器。

3确认 MySQL 容器正在运行:

使用 docker ps 命令检查 MySQL 容器是否成功启动:

docker ps

4连接到 MySQL 服务器:

可以使用 mysql 命令行工具连接到 MySQL 服务器:

mysql -uroot -p

当提示输入密码时,输入我在步骤 2 中设置的 MYSQL_ROOT_PASSWORD

[!NOTE]

可以直接使用 Docker 容器中的 MySQL 服务,但是我需要确保宿主机上安装了 MySQL 客户端,或者可以直接在 Docker 容器的命令行中使用 mysql 命令。以下是两种方法:【我是用第二种】

方法一:在宿主机上使用 MySQL 客户端连接到 Docker 容器中的 MySQL 服务

  1. 确保我已经在宿主机上安装了 MySQL 客户端。如果没有,请根据我的 Linux 发行版安装它。

  2. 使用以下命令连接到 Docker 容器中的 MySQL 服务:

    mysql -uroot -p -h 127.0.0.1 -P 3306
    

    这里 -h 127.0.0.1 指定了宿主机的 IP 地址,-P 3306 指定了映射到宿主机的端口号。

  3. 当提示输入密码时,输入我在创建 MySQL 容器时设置的 MYSQL_ROOT_PASSWORD

方法二:在 Docker 容器的命令行中使用 mysql 命令

  1. 首先,找到我的 MySQL 容器 ID 或名称:

    docker ps
    
  2. 然后,使用 docker exec 命令进入容器的命令行界面:

    docker exec -it some-mysql /bin/bash
    

    some-mysql 替换为我的 MySQL 容器名称。

  3. 在容器内部,直接使用 mysql 命令连接到 MySQL 服务:

    mysql -uroot -p
    

    由于我已经在容器内部,不需要指定主机和端口,只需输入密码即可。

请注意,如果我在容器内部使用 mysql 命令,我将直接与 MySQL 服务交互,而不需要在宿主机上安装 MySQL 客户端。但是,这种方法要求我能够进入容器的命令行界面。如果我只需要偶尔管理 MySQL 数据库,通常在宿主机上安装 MySQL 客户端会更方便。

退出mysql容器时用exit命令

5配置 MySQL 时区(可选):

MySQL 容器默认使用 UTC 时区。如果我需要更改时区,可以在启动容器时挂载自定义的 my.cnf 配置文件:

docker run ... -v /mycustomconfig/my.cnf:/etc/mysql/my.cnf ...

my.cnf 文件中,可以添加如下配置来设置时区:

[mysqld]
default-time-zone='+08:00'

6安全配置 MySQL(可选):

MySQL 提供了一个脚本来设置安全选项,可以在第一次启动时运行它:

docker exec -i some-mysql mysql_secure_installation

按照提示操作,设置移除匿名用户、禁止 root 用户远程登录等安全选项。

大学生制作不易,各位愿意的话可以打赏,不愿意的话也没关系,学习最重要。最后,哪里写的不合适请告诉我,我弄明白后再修正,谢谢!

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值