Docker容器内MySQL命令行使用指南

docker exec -it mariadb mysql -u "root" -p"${DATABASE_PASSWORD}" -h "${DATABASE_IP}" -e "use mysql; CREATE DATABASE IF NOT EXISTS \`bpm`\ CHARACTER SET utf8mb4_general_ci;"

在 Docker 容器中,`docker exec` 命令用于在已经运行的容器内执行命令。这个命令的选项和参数如下:

- `-it`:这个选项组合了 `-i` (interactive) 和 `-t` (pseudo-tty)。`-i` 表示即使没有附加到容器的标准输入,Docker 也会保持容器运行。`-t` 为容器分配一个伪终端,这样你就可以像在终端上一样与容器进行交互。

- `mariadb`:这是要执行命令的容器的名称或ID。

- `mysql`:这是要在容器内执行的命令,用于启动 MySQL 命令行客户端。

- `-u "root"`:这是传递给 `mysql` 命令的选项,指定要使用的用户是 `root`。

- `-p"${DATABASE_PASSWORD}"`:这是传递给 `mysql` 命令的选项,用于指定密码。密码是通过环境变量 `DATABASE_PASSWORD` 来提供的。

- `-h "${DATABASE_IP}"`:这是传递给 `mysql` 命令的选项,指定要连接的 MySQL 服务器的主机地址。主机地址是通过环境变量 `DATABASE_IP` 来提供的。

- `-e`:这是 `mysql` 命令的一个选项,用于执行后面跟随的 SQL 语句。在 Docker 容器中,`-e` 选项用于指定要执行的命令,而不是启动一个交互式的 shell。

- `"use mysql; CREATE DATABASE IF NOT EXISTS \`bpm` CHARACTER SET utf8mb4_general_ci;"`:这是要执行的 SQL 语句。首先切换到 `mysql` 数据库(如果存在的话),然后创建一个新的数据库 `bpm`,如果该数据库不存在的话。数据库的字符集被设置为 `utf8mb4_general_ci`。

举例说明 `-e` 的使用:

假设你想要在容器内执行一个简单的 SQL 查询,比如查询 `users` 表中的所有用户。你可以使用 `-e` 来执行这个查询,如下所示:
docker exec -it mariadb mysql -u "root" -p"${DATABASE_PASSWORD}" -h "${DATABASE_IP}" -e "SELECT * FROM users;"
这条命令会在 `mariadb` 容器中启动 MySQL 客户端,使用 `root` 用户登录,然后执行一个查询,列出 `users` 表中的所有行。`-e` 选项后面跟着的 SQL 语句会在 MySQL 客户端启动后立即执行,而不会进入交互模式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值