python通过远程连接mysql数据库进行操作


前言

环境:
1、mysql 5.7
2、pycharm 22.3.1 Professional
3、navicat


一、开启远程访问权限

1、开启远程访问端口

控制面板—系统和安全—windows防火墙—高级设置-入站规则;

  • 新建入站规则:
    在这里插入图片描述
  • 选择端口:
    在这里插入图片描述
  • 填入想要开启远程访问的端口号:
    在这里插入图片描述

后续一直next直至完成即可。

2、命令行登录mysql

  • 首先进入到mysql的bin安装目录:
    在这里插入图片描述
  • 创建账号root ,密码为mypassword,具有全部权限,允许从所有IP进行连接:
    在这里插入图片描述
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  • 开启远程控制:
update user set host='%' where user='用户名';

报错:
在这里插入图片描述

这里输入我们需要操作的数据库即可。后续再输入开启远程控制时仍然报错如下:

在这里插入图片描述
我们输入下面这行代码让其生效即可:

flush privileges;

二、Navicat 建库

1、新建连接

在这里插入图片描述

2、建库建表

  • 在连接上右击即可进行建数据库:

在这里插入图片描述
在这里插入图片描述

进行相应的设置即可。

  • 建表:
    在这里插入图片描述
    在这里插入图片描述

通过添加栏位来添加表的基本信息,并进行类型、长度、主键的设置。

在这里插入图片描述

  • 创建成功:
    在这里插入图片描述

三、python对数据库进行远程操作

import socket
import sys
import struct
import time
import tcp
import threading
import _thread
import pymysql
import pymysql


#连接数据
def MySQLConnect():
    connection = pymysql.connect(
        host='局域网地址',  # IP,MySQL数据库服务器IP地址 后面换成局域网地址
        port=3307,  # 端口,默认3306,可以不输入
        user='root',  # 数据库用户名
        password='mypassword',  # 数据库登录密码
        database='ks',  # 要连接的数据库
        charset='utf8'  # 字符集,注意不是'utf-8'
    )
    return connection

#插入数据到数据库
def AddData(grade):
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 插入数据库
    sql = "INSERT INTO test(grade) VALUES (%s); "
    cursor.execute(sql, [grade])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()
def ReadData():
    # 连接数据库
    conn = MySQLConnect()
    # 使用cursor()方法创建一个游标对象cursor
    cursor = conn.cursor()
    # 读数据库
    cursor.execute('select * from test')
    aa = cursor.fetchall()
    print(aa)
    #cursor.execute(sql, [num, yb, wd, time])
    # 提交事务
    conn.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    conn.close()

if __name__ == '__main__':

    try:
        # MySQLConnect()
        ReadData()
        AddData(50)
        # ReadData()
        print("连接成功")
    except:
        print("连接失败")
        sys.exit(1)

将host处换成局域网地址即可进行远程连接。


三、总结

此次操作并不难,只是需要细心,数据库、表、登陆密码、地址等一定要填写正确方可进行操作。

四、参考资料

本地mysql数据库开启远程访问

猜你喜欢

转载自blog.csdn.net/qq_52215423/article/details/131056202
今日推荐