1、拉取MySQL镜像
#默认拉取最新的镜像
docker pull mysql
2、构建容器
docker run -p 3306:3306 --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
参数介绍
- -p表示端口映射 宿主机端口 映射 容器端口
- –name 表示容器名称
- –restart=always 表示容器随着docker启动而启动
- -e 表示写入参数 MYSQL_ROOT_PASSWORD表示密码
- -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上进行登录访问了
当我看见连接成功感觉一切都是值得的!哈哈哈哈