Debezium教程翻译03:启动mysql数据库

启动mysql数据库

目前,我们已经启动了Zookeeper和Kafka,但是还没有数据库服务器,Debezium可以从中捕获变化。现在,让我们使用一个示例数据库启动一个MySQL服务器。
打开一个新的终端,使用它启动一个新的容器,运行一个预先配置了库存数据的MySQL数据库服务器:

$ docker run -it --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8

它使用debezium/example-mysql镜像的0.8版本运行一个新的容器,该映像基于mysql:5.7映像,定义并填充一个示例“inventory”数据库,并使用密码dbz创建一个debezium用户,该用户具有debezium mysql连接器所需的最低权限。该命令将mysql名称分配给容器,以便稍后可以方便地引用它。"-it"选项使容器具有交互性,这意味着它将终端的标准输入和输出附加到容器上,以便您可以看到容器中发生了什么。"–rm"命令可以使Docker在容器停止时移除容器。该命令将容器中的端口3306(默认MySQL端口)映射到Docker主机上的相同端口,以便容器外的软件可以连接到数据库服务器。最后,它还三次使用-e选项将MYSQL_ROOT_PASSWORD、MYSQL_USER和MYSQL_PASSWORD环境变量设置为特定值。
您应该可以在终端中看到如下内容:

...
017-09-21T07:18:50.824629Z 0 [Note] mysqld: ready for connections.
Version: '5.7.19-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)

注意,MySQL服务器在修改配置时启动和停止几次。上面列出的最后一行报告MySQL服务器正在运行,可以使用了。

启动一个Mysql命令行客户端

打开一个新的终端,为MySQL命令行客户端启动一个新的容器,并连接到mysql容器中运行的MySQL服务器:

$ docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

这里我们使用mysql:5.7镜像启动容器,命名容器mysqlterm,并将其链接到数据库服务器运行的mysql容器。rm选项告诉Docker在容器停止时移除它,命令的其余部分定义容器应该运行的shell命令。这个shell命令运行MySQL命令行客户端,并指定正确的选项,以便能够正确连接。
容器输出的内容类似如下:

mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

与其他容器不同,这个容器运行一个生成提示符的进程。我们将使用提示符与数据库交互。首先,切换到“inventory”数据库:

mysql> use inventory;

然后列出数据库中的表:

mysql> show tables;

应显示:

+---------------------+
| Tables_in_inventory |
+---------------------+
| customers           |
| orders              |
| products            |
| products_on_hand    |
+---------------------+
4 rows in set (0.00 sec)

使用MySQL命令行客户端浏览数据库并查看数据库中预加载的数据。例如:

mysql> SELECT * FROM customers;
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页