python通过外网远程连接腾讯云Mysql数据库-案例

最近需要做一个东西把接口获取到的数据存到云数据库上,尝试了一下云数据库的使用,将具体操作记录一下。

1. 购买一个云数据库,因为是测试就买了一个按需付费的。

2. 初始化,设置用户名、密码。

3. 登录 phpMyAdmin,创建数据库。

4.开启外网IP

购买云数据库后,初始化设置用户密码,然后登录 phpMyAdmin,这是一个在线的Mysql网页数据库管理工具,可以进行创建数据库、表、执行sql语句登操作,这里创建一个数据库demo01。具体操作:https://cloud.tencent.com/document/product/236/36444

然后登录Mysql控制台,在实例列表中,单击实例名或“操作”列的【管理】,进入实例详情页面。找到【外网地址】,单击【开启】。开启成功后,即可在基本信息中查看到外网地址。

我们需要的是外网地址和端口号,在python程序中通过这两个在加上数据库名和密码就可以连接到云数据库。

数据库连接测试程序

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File  : dbtest.py

# @Author: Small-orange

# @Date  : 2020-7-21

# @Desc  : 每3秒向数据库插入一条数据

from sqlalchemy import create_engine,MetaData,Table,Column,Integer,String

from sqlalchemy.orm import sessionmaker

from sqlalchemy.ext.declarative import declarative_base

import pymysql

import random

import  time

#数据库连接函数并创建表格

def dbConnection():

    engine = create_engine('mysql+pymysql://数据库用户名:数据库的密码@外网地址:外网端口/数据库名)

    # 连接到数据库

    conn = engine.connect()

    # MetaData类主要用于保存表结构,连接字符串等数据,是一个多表共享的对象

    metadata = MetaData(engine)  # 绑定一个数据源的metadata

    # 定义表结构,包括表名,上面绑定的数据源metadata和列定义

    student = Table('test_table', metadata,

                    Column('id', Integer, primary_key=True),

                    Column('name', String(20)),

                    Column('score', Integer)

                    )

    metadata.create_all(engine)  # 创建表,安全操作,会先判断表是否存在

    # 向表中添加数据

    # 对数据库的操作需要通过session来完成

    DBsession = sessionmaker(bind=engine)

    # sessionmake方法创建一个Session工厂,然后在调用工厂的方法来实例化一个Session对象。

    session = DBsession()

    return session

def addData():

    session = dbConnection()

    Base = declarative_base()

    # 创建数据表对应的类

    class Student(Base):

        __tablename__ = 'test_table'

        id = Column(Integer, primary_key=True)

        name = Column(String(20))

        score = Column(Integer)

    print('--开始添加数据--')

    id = 12

    while True:

        print('添加第{}条数据'.format(id))

        name = 'testdata-{}'.format(id)

        score = random.randint(50,100)

        stu = Student(id=id, name=name, score=score)

        session.add(stu)

        session.commit()  # 提交事务

        session.close()

        id = id + 1

        time.sleep(3)

#测试addFata()函数

addData()

结果:

程序运行后,数据被存入到云数据库上面了。

你可能感兴趣的:(python通过外网远程连接腾讯云Mysql数据库-案例)