mysql - docker mysql 在不同的端口

标签 mysql docker

我想更改 mysql docker 容器的默认公开端口,但如果我尝试使用此命令:

 docker run --detach --name=test-mysql -p 52000:52000  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql

它不起作用。 mysql -uroot -pmypassword -h 127.0.0.1 -P 52000 警告:在命令行界面上使用密码可能不安全。 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

如果我使用标准端口 3306:3306,那么它可以正常工作,但我想更改端口。可以吗?

我已经尝试过 -p 52000:3600 ,但我总是得到:

mysql -uroot -pmypassword -h 127.0.0.1 -P 52000 警告:在命令行界面上使用密码可能不安全。 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

最佳答案

您需要将容器端口 3306 映射到(您的服务器的)首选 TCP 端口:

-p <host_port>:<container_port> (map container_port xx on host_port yy)

所以对于你的mysql

docker run --detach --name=test-mysql -p 52000:3306  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql

关于mysql - docker mysql 在不同的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41637013/

相关文章:

php - 是否可以从 SQL Server 创建文本格式的列表,然后由 PHP Cron 作业处理?

PHP mysqli SELECT 查询不会执行

mysql - 无法弄清楚如何完成sql语句

spring-boot - 如何通过ip地址访问docker服务

linux - Docker:已安装卷的权限

mysql - 即使使用 Alias,MySQL 中的列也不明确

docker - Laravel 5应用程序无法连接docker容器中的MariaDB引擎

docker - Docker 是否应该在所有容器关闭时释放所有内存?

c++ - Docker容器中的可执行文件不会从gdb远程调试中注册断点

php - 从mysql表中删除记录