启动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 -- 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;
继续阅读与本文标签相同的文章
福州公布首批七项物联网团体标准
python小程序之在线视频网站播放页面网址提取
-
苹果新获专利详细介绍了Measure如何利用AR进行精确视觉测量
2026-05-18栏目: 教程
-
消费升级不是把原来的成熟产品卖得更高更贵
2026-05-18栏目: 教程
-
红旗首款纯电SUV登场!动力强续航足,这外观太漂亮!
2026-05-18栏目: 教程
-
互联网时代,挑战与机遇并存
2026-05-18栏目: 教程
-
便利店如何建立高效的物流信息系统平台
2026-05-18栏目: 教程
