python連接Docker部署的mysql容器,對mysql操作

上一篇博客寫了關於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數據庫信息,從數據庫信息自動添加成功
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章