上一篇博客寫了關於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,給
root
添加權限 - 進入mysql容器
docker exec -it main_mysql /bin/bash
- 連接進入容器內部mysql
mysql -uroot -p密碼
- 給root用戶添加權限 任何遠程主機都可以訪問數據庫
grant all privileges on *.* to 'root'@'%';
- 刷新權限
flush privileges;
- 登錄容器內部mysql,給
- 之後再運行代碼,就不會報錯了
- 數據庫查看
- 主MySQL服務器數據,表格已經創建成功
- 查看從MySQL數據庫信息,從數據庫信息自動添加成功