docker 创建mysql镜像,并成功进行远程连接

1.安装

1.1 拉取镜像

docker pull mysql

拉取成功可以验证一下

docker images

1.2 创建并启动一个mysql容器

docker run --name self-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
  • –name:给新创建的容器命名,此处命名为self-mysql
  • -e:配置信息,此处配置mysql的root用户的登陆密码
  • -p:端口映射,此处映射主机3306端口到容器pwc-mysql的3306端口
  • -d:成功启动容器后输出容器的完整ID.
  • 最后一个mysql指的是mysql镜像名字

到这里我们查看容器运行状态:

$ sudo docker ps

可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等。

配置远程连接:

方式一:

docker exec  self-mysql   mysql -u root -p123456 -e "use mysql; ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';FLUSH PRIVILEGES;"

 

方式二:

1、进入mysql容器

docker exec -it self-mysql bash

2、连接mysql

mysql -uroot -p

3.支持远程连接

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';  
Query OK, 0 rows affected (0.01 sec)     
mysql> FLUSH PRIVILEGES;  
Query OK, 0 rows affected (0.01 sec)  
  

连接注意:

用容器所在的主机ip地址和映射出的端口号进行连接。

 

 查看mysql容器的ip

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 

直接通过脚本创建:

rm -rf  /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf

mkdir -p /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf

cat>/usr/data/mysql/my.cnf<<EOF
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8

EOF



docker run --restart=always -p 3306:3306 --name mysql5.7 -v /usr/data/mysql/conf:/etc/mysql  -v /usr/data/mysql/logs:/var/log/mysql -v /usr/data/mysql/data:/var/lib/mysql -v /usr/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值