远程连接docker中mysql容器

一、将拉下来的mysql镜像跑起来

 docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

 

二、再次进入mysql容器中

 docker exec -it c0d75389810c bash

三、登陆mysql

mysql -h localhost -u root -p

四、查看自己的数据库

show databases;

五、添加远程登录用户
 

CREATE USER 'newroot'@'%' IDENTIFIED WITH mysql_native_password BY '123456';


六、给予远程用户所有表所有权限

GRANT ALL PRIVILEGES ON *.* TO 'newroot'@'%';

七、刷新权限
 

FLUSH PRIVILEGES;


八、主机连接远程数据库

第一次连接失败

返回容器中查看是不是远程用户权限问题:

 select host,user,plugin,authentication_string from mysql.user;

我们尝试连接newroot这个用户,因为这里我开始是为newroot这个用户设置的远程访问权限:

 

注意:可能存在端口占用问题,很难解除占用:

,开启容器时提示本地3306端口被占用,于是就使用这条命令查了下端口使用情况:

fuser -v -n tcp 3306

发现确实被占用了,于是用
kill -s 9 pid
把占用的进程干掉,再次查看是发现还在占用,于是发现是本地的MySQL服务 开着,就通过:
/etc/init.d/mysqld stop
把MySQL服务关掉,发现这时端口3306 已经被释放了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 若要在Docker镜像启用MySQL远程连接,你可以按照以下步骤进行设置。首先,使用下面的命令启动一个MySQL容器,并设置相关的数据卷和环境变量: docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:latest 其,-p参数用于设置端口映射,将主机的3306端口映射到容器的3306端口;-v参数用于设置数据卷,将主机的配置文件目录映射到容器的/etc/mysql/conf.d目录,将主机的数据目录映射到容器的/var/lib/mysql目录;-e参数用于设置环境变量,这里设置了MySQL的root密码为123456。 接下来,你可以使用MySQL客户端连接到这个容器MySQL实例。如果你在本机上使用MySQL客户端,可以使用以下命令连接到容器: mysql -h 127.0.0.1 -P 3306 -u root -p 这里,-h参数指定连接的主机为127.0.0.1,-P参数指定连接的端口为3306,-u参数指定连接的用户名为root,-p参数表示需要输入密码。 如果你希望从远程主机连接到这个容器MySQL实例,可以将"-h 127.0.0.1"修改为容器所在主机的IP地址或域名。 请注意,为了安全起见,建议将容器MySQL实例绑定到特定的IP地址或仅在特定网络接口上监听,以限制远程连接的访问范围。这可以通过修改MySQL的配置文件来实现,具体的配置方法可以参考Docker官方文档关于MySQL容器的说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不染心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值