docker部署mysql并且自动启动_使用Docker安装MySQL数据库并设置自动自动

1. 安装好Docker ( 教程请看此分类中上一篇文章 )

2. 通过Docker拉取MySQL镜像, 不加版本号的话, 默认是最新版 ( 8.0 )docker pull mysql

3. 使用命令查看是否拉取成功:docker images

成功的话, 会显示MySQL镜像, 如下图:

748ceed76012

docker images 显示镜像列表

4. 使用 3306 端口启动 MySQL 并暴露此端口; 并设置自动启动

--restart=always  设置自动启动

--name mysql 设置容器名称

MYSQL_ROOT_PASSWORD=xxx xxx表示root密码

-d mysql 要启动的镜像名称

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

5. 此时, 还无法通过外部连接MySQL, 因为默认只能通过本机登录, 我们要登入docker中的MySQL容器, 设置授权任意地点登录, 并且由于8.0开始, 密码加密方式与旧版不同, 为了兼容旧版登录, 要一并更改密码加密方式; 另外, 我们要根据项目需要, 添加用于开发/生产的用户;docker exec -it mysql /bin/bash  # -it xxx  xxx表示你刚刚设置的容器名称

748ceed76012

登录成功后, root@后面的主机名会变成容器id

登录MySQL并输入密码mysql -uroot -p

748ceed76012

登入成功

开始更改root密码加密方式, 并且设置外部登录:

由于默认只有 root@localhost 用户, 我们需要先添加 root@% 用户, %表示任意地点登录; 其中 xxx 替换成你要设置的密码

( docker 中的MySQL8.0 默认携带了root@%用户, 我们只需要修改密码加密方式即可;ALTER USER 'root'@'%' IDENTIFIED BY 'xxx' PASSWORD EXPIRE NEVER;

748ceed76012

设置密码为永不过期; 其中 xxx 替换为你要设置的密码;ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';

748ceed76012

修改密码并指定加密规则为 mysql_native_password  , xxx替换为你要设置的密码flush privileges;

748ceed76012

刷新权限后, 刚才的更改才会生效

添加用户; 修改该用户的加密方式; 为用户设置权限; 我这里以test为例, 并设置所有权限, 实际项目中, 只设置需要用到的权限即可; 最后别忘了刷新权限;create user 'test'@'%' identified by 'xxx';

alter user 'test'@'%' identified by 'xxx' password expire never;

alter user 'test'@'%' identified with mysql_native_password by 'xxx';

grant all on *.* to 'test'@'%' ;

flush privileges;

使用 Navicat 等数据库连接软件进行测试; 别忘了开放3306端口哦 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值