docker mysql安装启动远程连接

  • 镜像查询docker search mysql
  • 下拉镜像docker pull mysql
  • 启动镜像 docker run -p 3306:3306 --name mysql --privileged=true --restart unless-stopped -v /opt/mysql_docker/mysql:/etc/mysql -v /opt/mysql_docker/logs:/logs -v /opt/mysql_docker/data:/var/lib/mysql -v /opt/mysql_docker/localtime -v /opt/mysql_docker/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql 注意-v /opt/mysql_docker/mysql-files:/var/lib/mysql-files/ 不然会报错docker mysql mysqld: Error on realpath() on '/var/lib/mysql-files' No such file or directory
  • **可通过log日志查看mysql相关问题问题 docker logs mysql
  • 参数说明
--privileged=true  挂载文件权限设置
--restart unless-stopped  设置 开机后自动重启容器
-v /opt/mysql_docker/mysql:/etc/mysql    挂载配置文件
-v /opt/mysql_docker/logs:/logs \      挂载日志
-v /opt/mysql_docker/data:/var/lib/mysql \  挂载数据文件 持久化到主机,
-v /etc/localtime:/etc/localtime    容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456    设置密码
-d  mysql   后台启动,mysql
  • 查看是否启动成功 docker ps -a

  • 阿里云配置 保证阿里云开放了3306这个端口

    安全组

    管理实例

    安全组规则

    添加端口

  • mysql远程登录授权

    • docker exec -it mysql bash
    • 登录mysqlmysql -uroot -p
    • create user 'xx'@'%' identified by 'xx';
    • GRANT ALL PRIVILEGES ON *.* TO 'xx'@'%';
    • FLUSH PRIVILEGES;
  • navicate远程连接报错无法连接 远程访问用户的验证方式改为: msyql_native_password

    • 注意:Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation问题
      • MySQL8版本中新增了一个system_user帐户类型,当我们新增一个用户test,并用root用户对test进行密码修改的操作时,系统不会报错
      • 当alter 修改msyql_native_password方式时候报错,原因是由于root用户没有SYSTEM_USER权限
      • grant system_user on *.* to 'root';
    • ALTER USER 'xx'@'%' IDENTIFIED WITH mysql_native_password BY '123456'
    • flush privileges;
  • 连接成功 参考链接https://blog.csdn.net/fyj13925475957/article/details/108146968

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容