win10使用python自动化安装mysql8.0.11
流程概要
- 下载mysql-8.0.11-winx64压缩包
- 解压
- 编辑配置文件my.ini
- 管理员权限cmd安装(注意初始化时设置默认密码为空)
- pymysql连接,执行sql操作。
代码实现
依赖:
import os
import zipfile
import pymysql
import ctypes, sys
解压:
zip_src = './mysql-8.0.11-winx64.zip'
dst_dir = os.getcwd()
def unzip_file():
print('-----------解压中---------')
# zip_src: 是zip文件的全路径 mysql-8.0.11-winx64.zip
# dst_dir:是要解压到的目的文件夹的绝对路径
if not os.path.exists(dst_dir):
os.makedirs(dst_dir) # 创建路径
r = zipfile.is_zipfile(zip_src)
if r:
fz = zipfile.ZipFile(zip_src, 'r')
for file in fz.namelist():
fz.extract(file, dst_dir)
print(file)
print('-----------解压完成---------')
else:
print('unzip_error:This is not zip')
配置文件
def my_ini():
ini = f'''[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir={dst_dir}\mysql-8.0.11-winx64
# 设置 mysql数据库的数据的存放目录
datadir={dst_dir}\mysql-8.0.11-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
wait_timeout=31536000
interactive_timeout=31536000
#sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
'''
with open(str(dst_dir) + '\mysql-8.0.11-winx64\my.ini', 'w', encoding='ANSI') as file:
file.write(ini)
注意保存为ANSI格式文件而不是UTF-8
获取管理员权限安装mysql
def is_admin():
# 管理员权限运行命令行
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def install_db():
if is_admin():
# Code of your program here
os.chdir(f'{dst_dir}\mysql-8.0.11-winx64\\bin') # 切换bin目录
os.system('mysqld --initialize-insecure') # 初始化数据库 并设置默认密码为空
os.system('mysqld install') # 安装
os.system('net start mysql') # 启动
else:
# Re-run the program with admin rights
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
这里mysqld --initialize-insecure将默认密码设置为空可以省很多麻烦,很有必要
连接mysql执行操作
def connect_mysql():
# 数据库连接 修改密码
try:
db = pymysql.connect(host='localhost',
user='root',
password="",
database='mysql')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL
cursor.execute("ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1';") # 修改密码
cursor.execute("flush privileges;") # 刷新权限
cursor.execute("CREATE DATABASE mydb;") # 创建数据库
# 关闭数据库连接
db.close()
print('修改密码、创建数据库(mydb)成功')
except:
print('修改密码、创建数据库失败')
主函数执行
def main():
unzip_file()
my_ini()
install_db()
connect_mysql()
input('输入任意字符后退出:')
if __name__ == '__main__':
main()
ps:
因为使用时需要将py文件打包成exe可执行文件,于是加上input结束时手动退出
打包方法:
- 进入py文件所在目录cmd,执行pyinstaller -F xxx.py
- 将zip包复制到打包生成的dist目录下,与exe文件放在一起,右键管理员权限运行exe即可。
菜鸟摸索中,请大牛不吝指正(抱拳)
win10使用python自动化安装mysql8.0.11的更多相关文章
- Linux(CentOS-8)安装MySQL8.0.11
CentOS安装MySQL8.0.11 总的思路就是:安装MySQL,编写配置文件,配置环境变量,成功开启服务,登陆并修改ROOT密码 开启远程访问的思路就是:授权用户所有IP都可以访问,系统的数据库 ...
- win10 压缩包安装mysql8.0.11报错:Access denied for user 'root'@'localhost'
按这篇:https://blog.csdn.net/Myuhua/article/details/84792121#commentsedit 这里精简下,还有update语句中authenticati ...
- 【转载】安装mysql8.0.11以及修改root密码、连接navicat for mysql。
1.1. 下载: 官网下载zip包,我下载的是64位的: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:(解压在哪个盘都可以的) ...
- 安装mysql8.0.11以及修改root密码、连接navicat for mysql。
最近在学习node.js,少不得要跟数据库打交道,于是打算安装一个数据库软件,在mongedb和mysql之间选择了mysql.作为一个数据库新人不敢评论孰好孰坏,最后选择mysql纯属因为公司在用m ...
- windows10安装mysql8.0.11(免安装版)
1.MySQL8.0.11下载网址:https://dev.mysql.com/downloads/mysql/ 2.配置环境变量:我的电脑->属性->高级系统设置->环境变量-&g ...
- 安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解
1.1. 下载: 官网下载zip包,我下载的是64位的: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:(解压在哪个盘都可以的) ...
- Linux安装Mysql8.0.11
0. 安装环境 1. 下载安装包 方式一:百度网盘下载 链接:https://pan.baidu.com/s/11t_JXUp-SXRaioNDvdltNg 提取码:uzyj 方式二:在线下载 1 ...
- [linux]centos7.4上安装MySQL-8.0.11【完美安装】
版本声明 centos7.4 MySQL-8.0.11 1.我用的阿里云的虚拟主机,刚从windows换到linux,需要装下常用工具 #安装下sz rz常用到上传下载的命令 yum install ...
- Mac下安装mysql8.0.11
1.下载MySQL Community 版本:8.0.11,本次例子是以dmg安装的方式,下载的文件名为:mysql-8.0.11-macos10.13-x86_64.dmg 下载地址:https:/ ...
- Ubuntu18.04 安装mysql8.0.11
1.下载deb包 2.运行命令 sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb sudo apt update 3.安装mysql8 sudo apt i ...
随机推荐
- clickhouse在风控-风险洞察领域的探索与实践
一.风险洞察平台介绍 以Clickhouse+Flink实时计算+智能算法为核心架构搭建的风险洞察平台, 建立了全面的.多层次的.立体的风险业务监控体系,已支撑欺诈风险.信用风险.企业风险.小微风险. ...
- Go语言核心36讲03
[Go语言代码较多,建议配合文章收听音频.] 你好,我是郝林.从今天开始,我将和你一起梳理Go语言的整个知识体系. 在过去的几年里,我与广大爱好者一起见证了Go语言的崛起. 从Go 1.5版本的自举( ...
- tomcat下载安装&配置教程
tomcat下载安装&配置教程 1 安装jdk 1.1 安装jdk 1.2 安装JDK后设置环境变量 1.3 使环境变量生效 1.4 查看java版本 2 安装tomcat 2.1 在/usr ...
- Atcoder补题计划
11.17 AtCoder Regular Contest 151 知识点: A:简单题 B:计数,并查集 补题传送门
- C温故补缺(一):数据类型和基本类型占位
数据类型 基本类型:就是算术类型,包括整型和实型 枚举类型:一组离散的整数 void类型:无可用值类型 派生类型:指针(*),数组([]),结构体(struct),共用体(union),函数(fun( ...
- MIT6.828 Lab 1: C, Assembly, Tools, and Bootstrapping
前置准备 实现机器为VMWare的虚拟机,操作系统为 Debian-11(无桌面版本),内核版本为 5.10.0,指令集为 AMD64(i7 9700K),编译器为 GCC-10 QEMU 虚拟化支持 ...
- 【每日一题】【比较中右,内部比较中右,注意边界带>=】2021年11月2日-搜索旋转排序数组-211102/220211
[某下标处进行了旋转]整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋 ...
- 锂电池3.7V转3V,1.5V的稳压和降压芯片
3.7V是常规我们知道的锂电池多,一般锂电池的放电电压是3V-4.2V之间,再降压转3V,1.5V的话,不需要担心升降压等其他问题,不像输出3.3V时,可能要考虑到升降压芯片的问题了,升降压芯片可考虑 ...
- PyQt4编写界面的两种方式
PyQt4编写界面的两种方式 应用PyQt4开发图形化界面有两种方式,一种是直接通过QtDesigner通过提供的窗口部件拖拽进行GUI创建,另外一种是直接进行编程实现. 第一种,QtDesigner ...
- pyqt5制作俄罗斯方块小游戏-----源码解析
一.前言 最近学习pyqt5中文教程时,最后一个例子制作了一个俄罗斯方块小游戏,由于解释的不是很清楚,所以源码有点看不懂,查找网上资料后,大概弄懂了源码的原理. 二.绘制主窗口 将主窗口居中,且设置了 ...