Python工具箱系列(二十二)

互联网世界里最流行的开源关系型数据库之一就是MySQL/MariaDB了,由于高度的相似,故而直接使用mysql统一指称。

windows下的安装

windows最吸引人的地方就在于易于安装。mysql在WINDOWS下也是最容易安装的。直接在官网上下载可安装程序,一路NEXT即可。

ubuntu18.04的安装

如果是生产环境部署,建议以普通用户角色,使用sudo命令方式安装,从而兼顾安全性与权限充足。如果读者是开发者,在测试环境下使用root帐号,则可以直接输入命令。

 

# 获得最新的安装数据
apt update
apt upgrade -y

# 安装mysql服务
apt install -y mysql-server
apt install -y libmysqlclient-dev

# 查看网络诊听
netstat -tap | grep mysql

# 进行安全配置
mysql_secure_installation

# 常见问题处理方法
# 出现“Would you like to setup VALIDATE PASSWORD plugin?”,可以直接选择无视。
# 出现“Disallow root login remotely? ”时,如果不止从本地访问数据库,可以回车选择无视
# 出现“Remove test database and access to it? ”,可以回车选择删除测试用数据库

# vim /etc/mysql/mysql.conf.d/mysqld.cnf 
# 注释掉bind-address这一行,因为本行要求MYSQL服务只服务于本地。也可以使用sed语句直接封闭,推荐使用sed语句,简洁有力
sed -i 's/bind-address/#bind-address/g' /etc/mysql/mysql.conf.d/mysqld.cnf

# 进行授权工作
mysql -u root -p
mysql> grant all privileges on *.* to 'root'@'%' identified by 'hl100800' with grant option;
mysql> exit
systemctl restart mysql

systemctl restart mysql
systemctl status mysql

## mysql测试

在windows下能够访问mysql的工具很多。包括但不限于:

* Mysql官方提供的各类工具,包括GUI与命令行的。
* Mycli
* DBeaver
* PhpMyAdmin
* HeidiSQL
* Induction
* DbNinja
* Pinba
* Monyog
* Gh-ost
* Chive
* SQL Lite Manager
* Sqlcheck
* Orchestrator
* MySQLDumper
* Navicat(付费)

笔者平时使用DBeaver这个GUI工具,不仅免费,而且能够访问多个数据库,非常推荐。PhpMyAdmin是老牌工具了,安装部署也非常方便。对于开发者而言,直接在vscode中安装相关的插件更是值得推荐,毕竟不脱离开发环境,不切换软件就直接完成任务,对于处在心流状态下的程序员非常必要。

与前文提到的嵌入式数据库sqlite不同,mysql是客户端与服务器端分离的。mysql有着良好的高并发、高吞吐的特性。此外,也支持数据库集群、主备切换、读写分离等优秀特性,本文不再赘述。最好的学习方法就是访问官网,看官方文档。在使用python进行mysql开发时,务必关注:

* 在指定服务器上正确安装mysql,并且启动相关服务,检查防火墙的配置
* 建立好正确的权限
* 为数据库、表配置正确的字符集
* 为mysql服务配置系统参数(内存、文件句柄数)等

## python对数据库的访问

mysql提供对多种语言的支持。对于python来说,安装以下包能够直接访问mysql。

```shell
pip install mysql-connector
pip install mysql-connector-python

 

以下代码演示了创建数据库、表的过程。

import mysql.connector

host = 'localhost'
user = 'root'
password = '8848is8848'
dbname = 'demodb'

# 创建数据库
demodb = mysql.connector.connect(host=host, user=user, password=password)
democur = demodb.cursor()
democur.execute(f'create database {dbname}')
democur.execute('show databases')
for x in democur:
    print(x)

demodb.commit()
democur.close()
demodb.close()

# 创建数据库成功后创建表结构
demodb = mysql.connector.connect(
    host=host, user=user, password=password, database=dbname)
democur = demodb.cursor()
sql_createtable = 'create table demotb(id int not null auto_increment,pm25 float not null,primary key(id))'
democur.execute(sql_createtable)

demodb.commit()
democur.close()
demodb.close()

以上代码创建了demodb数据库,并且在这个库下创建了demotb数据表。这个表非常简单:

id,整数类型做为主键,并且能够自动增长。

pm25,浮点数,未来存储环境检测的pm2.5的值。

考虑采样是固定频率,所以不需要时间,使用id标记时点。

后文将填充相关的值,并且使用python来查询与可视化相关的数据。

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python工具箱系列(二十二) - Python技术站

(0)
上一篇 2023年3月31日
下一篇 2023年3月31日

相关文章

  • Python工具箱系列(十二)

    在计算机世界里只有二进制。唯有人类才会对数据进行类型与价值判断。例如,认为某些文件是文本文件、是WORD/EXCEL文件或者是图片。对于加密算法来说也是一样的,加解密算法处理的只是字节流,根本不关心所谓的文件类型。对于文件来说,存在以下基本操作: ◆ open ◆ close ◆ read ◆ write ◆ delete 在Unix世界中,更是将文件这一概…

    2023年4月2日
    00
  • Python工具箱系列(二十五)

    Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis是一个nosql数据库。nosql是not-only sql的意思,泛指非关系型数据库。…

    Python开发 2023年3月31日
    00
  • Python工具箱系列(三十一)

    Neo4j是一个高性能的开源的,使用Java语言实现的NoSQL图数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。现实中很多数据都是用图来表达的,比如社交…

    python 2023年5月11日
    00
  • Python工具箱系列(三十)

    PostgreSQL MySQL的口号是“世界上最流行的开源关系型数据库”,而PostgreSQL的Slogan则是“世界上最先进的开源关系型数据库(PostgreSQL: The World’s Most Advanced Open Source Relational Database)”,一看这就是一对老冤家了。这两个口号很好的反映出了两者的形象特质:P…

    python 2023年5月8日
    00
  • Python工具箱系列(十六)

    前面介绍了对称加密算法,本文将介绍密码学中另一类重要应用:消息摘要(Digest),什么是消息摘要?简单的定义是:对一份数据,进行一个单向的Hash函数,生成一个固定长度的Hash值,这个值就是这份数据的摘要,也称为指纹。 常见的摘要算法有: MD5 SHA1 SHA256 其它 特点如下:   无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如…

    Python开发 2023年4月2日
    00
  • Python工具箱系列(十四)

    上文介绍了命令行方式来对文件进行加解密操作。本文将继续在此基础上,实现一个快速简易的GUI界面方便操作,先上代码看效果。 import argparse import configparser import json import os import struct import sys from configparser import ConfigParse…

    2023年4月2日
    00
  • Python工具箱系列(二十六)

    ClickHouse(Click Stream,Data WareHouse)是俄罗斯的 Yandex于2016年开源的用于在线分析处理查询(OLAP:Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。特别值得称道…

    Python开发 2023年3月31日
    00
  • Python工具箱系列(九)

    在计算机世界里,信息安全始终占据着重要的地位,我们随处就可以看到信息安全的应用: ◆ 访问网站时,使用https而不是http会使访问者的安全性大大提升 ◆ 下载文件时,正规的网站都会提供MD5或类似的散列码,供下载后校验,以防止下载被篡改的文件(有可能包含病毒或恶意代码等) ◆ 网络银行或者手机银行的U盾或者电子证书等 ◆ 区域链以及数字货币等 ◆ ssh…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部