本文共 3038 字,大约阅读时间需要 10 分钟。
MySQL 是 Web 世界中使用最广泛的数据库服务器。其内部有多种数据库引擎,最常用的引擎是支持数据库事务的 InnoDB。
安装 MySQL 时,需要注意以下几点:
/etc/my.cnf
;show variables like '%char%'
;安装数据库时,可以按照以下步骤操作:
设置数据库密码时,输入一个强密码以确保账号安全。
连接 MySQL 数据库时,使用以下方式:
conn = MySQLdb.connect( host='localhost', user='root', passwd='123456', db='testpython', port=3306, charset='utf8')
连接参数说明:
host
:MySQL 数据库地址;user
:数据库登录用户名;passwd
:数据库登录密码;db
:登录数据库后操作的库名;port
:数据库监听端口,默认为 3306;charset
:数据库编码。在连接后,可以执行以下操作:
commit()
:如果数据库表进行了修改,提交保存当前数据;rollback()
:如果有权限,可以取消当前操作,否则报错;cursor()
:获取数据库游标。游标是用于操作数据库结果集的重要工具,提供以下主要方法:
cursor()
方法;execute(query, args)
:执行单条 SQL 语句;executemany(query, args)
:执行多条 SQL 语句;commit()
:提交事务。插入数据时,可以通过拼接 SQL 语句实现:
sql = "INSERT INTO member (username, password, email) VALUES ('%s', '%s', '%s')" % ('westos', '123456', 'westos@163.com')cur.execute(sql)conn.commit()
查询数据时,可以使用以下方法:
fetchone()
:返回一条结果行;fetchall()
:返回全部结果行;fetchmany(size=None)
:返回指定大小的结果行;scroll(value, mode='relative')
:移动指针到指定行。以下 Python 脚本用于查询电脑磁盘使用率并将数据导入数据库:
# disk_used.pyimport osimport psutilimport MySQLdbdef get_disk_usage(): disk_info = [] for partition in psutil.disk_partitions(all=False): if os.path.ismount(partition.device): usage = psutil.disk_usage(partition.device).usage disk_info.append({ 'device': partition.device, 'usage': usage }) return disk_infodef save_to_database(): conn = MySQLdb.connect( host='localhost', user='root', passwd='123456', db='testpython', port=3306, charset='utf8' ) cur = conn.cursor() sql = "INSERT INTO disk_usage (device, usage) VALUES (%s, %s)" for info in get_disk_usage(): cur.execute(sql, (info['device'], info['usage'])) conn.commit() cur.close() conn.close()if __name__ == '__main__': save_to_database()
# conf.pyimport osdef load_config(): return { 'host': os.getenv('DB_HOST', 'localhost'), 'user': os.getenv('DB_USER', 'root'), 'passwd': os.getenv('DB_PASWD', '123456'), 'db': os.getenv('DB_NAME', 'testpython'), 'port': int(os.getenv('DB_PORT', 3306)), 'charset': os.getenv('DB_CHARSET', 'utf8') }
# HostInfoDb.pyimport MySQLdbfrom conf import load_configdef get_host_info(): conn = MySQLdb.connect(**load_config()) cur = conn.cursor() sql = "SELECT * FROM host_info" cur.execute(sql) results = cur.fetchall() cur.close() conn.close() return resultsif __name__ == '__main__': for host in get_host_info(): print(f"Host: {host['host']}") print(f"IP: {host['ip']}") print(f"Port: {host['port']}") print("-" * 50)
运行 HostInfoDb.py
后,可以查看数据库中 info
表的数据。
转载地址:http://uvnbz.baihongyu.com/