本文共 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/