记录一下Docker安装Mysql入的坑

本文记录了使用Docker安装MySQL过程中遇到的问题及解决方法,包括拉取镜像、构建和启动容器、设置端口映射、修改root用户密码、实现免密登录以及允许远程连接MySQL的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、拉取MySQL镜像

#默认拉取最新的镜像
docker pull mysql

2、构建容器

docker run -p 3306:3306 --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

参数介绍

  1. -p表示端口映射 宿主机端口 映射 容器端口
  2. –name 表示容器名称
  3. –restart=always 表示容器随着docker启动而启动
  4. -e 表示写入参数 MYSQL_ROOT_PASSWORD表示密码
  5. -d表示守护容器

3、启动容器

docker start 容器名/容器id

4、进入容器

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 

5、登录MySQL

mysql -u root -p

然后输入密码即可
注意! 这里可能登录异常,这是因为数据库里root的用户并不允许你输入的密码进行登录。
所以我们要重新修改一下root用户的密码(如果登录成功就不用管了下面了)

6、修改mysql免密登录

一般都在my.cnf里修改,如果不在mysql文件夹里就找找看别的文件夹里有没有

vim /etc/mysql/my.cnf

docker一般不会下载vim编辑器,所以我们下载一下vim

#先执行第一步
apt update
#然后执行
apt-get install vim

下载好之后就可以用vim了

直接在文件最下面加上,表示免密了

[mysqld]
skip-grant-tables

再登录

mysql -u root -p [这里随便输入什么密码都可以]

7、修改root用户密码

之前版本较老的password为密码现在是authentication_string

#执行一下SQL语句
update user set authentication_string=password("password") where User='root';

OK,这样的话我们就可以使用密码登录了,然后我们去吧免密登录删掉就可以完成密码登录了

8、非本地IP连接MySQL

查看用户可以在哪些IP上登录

SELECT user,host from user;

如果host :’%'表示这个用户可以用任意IP登录
所以设置root的host为%,那么root用户就可以在任意IP上进行登录访问了

当我看见连接成功感觉一切都是值得的!哈哈哈哈
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值