使用docker部署一个mysql实例5.7和8.0版本

查看mysql版本SQL

select version();

部署命令

  • 5.7版本

    docker run --name=mysql5.7 -p 3306:3306 -v /app/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.25
    
  • 8.0版本

    docker run --name=mysql8.0 -p 3306:3306 -v /app/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.34
    

通过-v参数将/var/lib/mysql映射到本机的/app/mysql地址,也就是mysql数据的存储地址(binlog和表数据都存在这个文件夹里面)
binlog相关配置参考:MySQL5.7主从(master/slave)同步配置实验记录

通过参数-e MYSQL_ROOT_PASSWORD=123456 用来指定mysql root账号的密码

授权

这个时候我们如果远程连接mysql的话(其他机器连接),会发现还是连接不上,原因是我们的root账号还没有赋予远程连接的权限。在本机登录mysql之后,执行如下SQL

  • 5.7版本

    grant all on *.* to 'root'@'%' identified by '123456';
    flush privileges;
    
  • 8.0版本

    grant all on *.* to 'root'@'%';
    flush privileges;
    

如果上述操作均完成后发现还是连接不上,可能就需要检查宿主机的防火墙或者端口等是否开放的问题


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍