随着 Docker 技术的普及,越来越多的前端开发者在使用 Docker 部署应用。在 Docker 容器内启动 MySQL 数据库后,我们如何通过外部工具远程访问 MySQL 数据库呢?本文将详细介绍 Docker 容器内部启动的 MySQL 如何远程连接,并提供示例代码以供学习和参考。
Docker 容器内部启动 MySQL
使用 Docker 容器启动 MySQL 很简单,只需要执行以下命令即可:
docker run --name mysql-dev \ -e MYSQL_ROOT_PASSWORD=password \ -d mysql
请注意,password
是您可以更改为实际密码的占位符。此命令将在容器中运行 MySQL 并将密码设置为“password”。
修改 MySQL 配置
默认情况下,MySQL 服务器只允许本地连接。为了远程访问 MySQL 数据库,我们需要打开 MySQL 的远程访问权限。
为此,我们需要登录到 MySQL 容器中并修改 MySQL 配置文件。首先,查找 MySQL 配置文件 my.cnf
的位置:
docker exec -it mysql-dev bash find / -name my.cnf
修改该文件以打开远程访问权限。找到 bind-address
行并将其从 127.0.0.1
修改为 0.0.0.0
。这个更改允许 MySQL 监听所有网络接口,而不仅仅是本地主机。可以使用下面的命令完成修改:
sed -i 's/127\.0\.0\.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
然后重启 MySQL 服务:
service mysql restart
现在,MySQL 服务器已经配置为接受来自任何 IP 地址的连接。我们可以通过访问 MySQL 数据库客户端来进行连接。
使用 MySQL 客户端远程连接
为了让我们的应用程序访问 MySQL 服务器,我们需要使用 MySQL 客户端。请确保你的计算机上安装了 MySQL 客户端,然后使用以下命令连接 MySQL 服务器:
mysql -u root -p -h <IP_address> -P <port_number>
其中,<IP_address>
和 <port_number>
是 MySQL 容器的 IP 地址和端口号。您可以使用以下命令获取容器 IP 地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-dev
默认情况下,MySQL 服务器在容器的 3306
端口上运行。如果您已经在容器内部打开了其他端口,则需要使用其他端口号。
接着,您将被要求输入 MySQL 根用户的密码。输入密码后,您将进入 MySQL 客户端。
示例代码
下面是一个示例代码,其中我们使用了 Node.js 应用程序来连接 Docker 容器中运行的 MySQL 服务器。
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---------- - ------------------------ ----- --------------- ----- ------- --------- ------------- --------- ------------- ----- ------------- --- ------------------------ -- - -- ----- - ------------------ ---------- -- ----- ------- --------- ------- - ---------------------- -- ----- ------ -- ------------------------------------------------------ --- -- --- ----------
请根据实际情况替换 <IP_address>
, <password>
, <database>
和 <port_number>
。
结论
本文详细介绍了在 Docker 容器内启动 MySQL 后如何远程连接 MySQL 数据库。我们首先修改了 MySQL 配置文件以允许远程连接,然后使用 MySQL 客户端连接 MySQL 服务器。最后,我们提供了一个使用 Node.js 应用程序来连接 MySQL 数据库的示例代码,以供学习和参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670789cdd91dce0dc869d655