上一篇博客写了关于docker中部署的mysql主从数据库,部署之后,最关键的是要应用到实际中

  • python中连接远程docker容器中的MySQL数据库
  • 下面演示一下pymysql模块操作数据库
# -*- coding: utf-8 -*-
# @Time    : 2019/3/29 19:20
# @Author  : cd

import pymysql

# 打开数据库连接
db = pymysql.connect(host='服务器公网ip', port=容器映射到宿主机的端口, user='root', passwd='密码', db='数据库')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询
cursor.execute("CREATE TABLE test (id int PRIMARY KEY, name varchar(20));")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()

print ("Database version : %s " % data)

# 关闭数据库连接
db.close()
  • 执行代码报错
    在这里插入图片描述
  • 报错原因,远程权限被拒绝
  • 解决办法
    • 登录容器内部mysql,给mysql数据库添加一个远程连接的用户
    • 进入mysql容器
      docker exec -it main_mysql /bin/bash
    • 连接进入容器内部mysql
      mysql -uroot -p密码
    • 这里将root用户作为远程连接用户,这里也可以自定义其他用户, 任何远程主机都可以访问数据库
      grant all privileges on *.* to 'root'@'%';
    • 刷新权限
      flush privileges;
      在这里插入图片描述
  • 之后再运行代码,就不会报错了
    在这里插入图片描述
  • 数据库查看
  • 主MySQL服务器数据,表格已经创建成功
    在这里插入图片描述
  • 查看从MySQL数据库信息,从数据库信息自动添加成功
    在这里插入图片描述
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐