根据每日生成的一个全网设备信息:设备名、厂商、设备型号、IP、版本、存活时间自动先生成一个.CSV文件,python通过pymysql库连接数据库将设备基础信息csv文件写入数据库。有两种方法进行数据库写入:逐条写入(适合小量)、一次性导入(适合大量的情况)。
1.1 逐条写入
import pymysql
def main():
csv_file_path='/home/zhangli/sw_list.csv'
file = open(csv_file_path, 'r',encoding='utf-8')
reader = file.readline()
b = reader.split(',')
colum = ''
for a in b:
colum = colum + a + ' varchar(255),'
colum = colum[:-1]
#定义table名字
table_name = 'ETCD'
#定义要插入的数据
#ata = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)
#连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='admin123',db='NET',charset='utf8')
#创建游标对象
cursor = conn.cursor()
#定义数据库
database='NET'
#创建table
create_table = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
cursor.execute('drop table %s' % table_name)
cursor.execute('use %s' % database)
cursor.execute(create_table)
#创建sql语句
for line in file:
line=line.replace("\n","")
f_read=line.split(',')
if f_read[0] == 'sw_name':
continue
else:
sw_name=f_read[0]
ip=f_read[1]
data_info=' values('+"\""+sw_name+"\""','+"\""+ip+"\""')'
sql = 'insert into '+table_name+data_info
cursor.execute(sql)
#提交事务
conn.commit()
cursor.close()
conn.close()
except Exception as err:
print(err)
main()
1.2 通过LOAD DATA全量导入数据
import pymysql
def main():
csv_file_path='/home/zhangli/sw_list.csv'
file = open(csv_file_path, 'r',encoding='utf-8')
reader = file.readline()
b = reader.split(',')
colum = ''
for a in b:
colum = colum + a + ' varchar(255),'
colum = colum[:-1]
#定义table名字
table_name = 'ETCD'
#定义要插入的数据
#data = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)
#连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='admin123',db='NET',charset='utf8',local_infile=True)
#创建游标对象
cursor = conn.cursor()
#定义数据库
database='NET'
#创建table
create_table = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
cursor.execute('use %s' % database)
#cursor.execute('drop table %s' % table_name)
cursor.execute(create_table)
#定义数据写入
sql="LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;" % (csv_file_path,table_name)
cursor.execute(sql)
#print('value1-->',value1)
#print('value2-->',value2)
#提交事务
conn.commit()
cursor.close()
conn.close()
except Exception as err:
print(err)
main()
1.3 考虑日常数据库更新
在1.2基础上进行优化,考虑日常数据更新
import pymysql
def main():
csv_file_path='/home/zhangli/sw_list.csv'
file = open(csv_file_path, 'r',encoding='utf-8')
reader = file.readline()
b = reader.split(',')
colum = ''
for a in b:
colum = colum + a + ' varchar(255),'
colum = colum[:-1]
#定义table名字
table_name = 'ETCD'
#定义要插入的数据
#data = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)
#连接数据库
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='admin123',db='NET',charset='utf8',local_infile=True)
#创建游标对象
cursor = conn.cursor()
#定义数据库
database='NET'
#创建table
drop_table = 'drop table if exists ' + table_name
create_table = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
cursor.execute('use %s' % database)
cursor.execute(drop_table)
cursor.execute(create_table)
#定义数据写入
sql="LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;" % (csv_file_path,table_name)
cursor.execute(sql)
#print('value1-->',value1)
#print('value2-->',value2)
#提交事务
conn.commit()
cursor.close()
conn.close()
except Exception as err:
print(err)
main()
Python
连接
MariaDB
数据库
python
连接
数据库
是我们常见的操作,尤其我们在构造大批量
数据
的时候。
连接
mysql
数据库
,可以使用pymysql库;
连接
oracle
数据库
,可以使用cx_Oracle库;
mariadb
除了使用pymysql库,还可以使用
mariadb
库。一、安装
mariadb
库pip安装
mariadb
pip install
mariadb
二、
连接
数据库
connect()函数
连接
数据库
。(user为账号,password为密码,host为主机,port为端口,database为
连接
的数
第五章 安装
MariaDB
本来打算在树莓派上部署一个MySQL本地
数据库
,然后用
Python
对
数据库
操作。尝试的时候发现MySQL已经不能在树莓派上使用了(说是因为版权问题),不过系统推荐了
MariaDB
作为替代。问题不大,
MariaDB
可以说是MySQL的分支,是同一个体系内的,基本没有太大的差别。
安装这个
数据库
也是依旧踩了无数的坑,下面记录在树莓派上安装
MariaDB
的详细步骤。
1. 确认系统
这里有必要说明一下,
MariaDB
可能只兼容最近发布的Raspberry Pi OS 64 位版
接上一篇博客,RHEL7下实现
MariaDB
数据库
的安装以及增删改查操作https://blog.csdn.net/zZzZzZ__/article/details/103428433最终我们要在
python
下实现
数据库
的增删改查。
我的环境是
Python
3,首先使用pip来安装PyMySQL模块。
sudo
python
3 -m pip install PyMySQL
创建
数据
表...
yum search
mariadb
2.安装
mariadb
的客户软件包和服务软件包
yum install
mariadb
mariadb
-server.x86_64 -y
3.启动
mariadb
服务
systemctl start
mariadb
system...
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
dblist = myclient.list_database_names()
if "runoobdb...
python
操作mysql
插入
数据
首先安装pymysql这个库pycharm
连接
数据库
操作mysql语句
连接
数据库
插入
数据
由于有时候,
数据
存在excel表格中,需要借助
python
去读取
数据
然后再
插入
到
数据库
中
首先安装pymysql这个库
pycharm
连接
数据库
这一步可要可不要,虽然那个sql语句会报红,但是其实运行起来也不会报错,
连接
了过后,pycharm会
连接
到那个
数据库
,可以识别
插入
语句,也就不会报红了
操作mysql语句
连接
数据库
def db_connect():
mysql 官方
连接
器(Connector/
Python
):pip install mysql-connector-
python
下载链接地址:https://dev.mysql.com/downloads/connector/
python
/
mariadb
官方
连接
器(Conne