当前位置: 首页 > news >正文

windows10使用bat脚本安装前后端环境之msyql5.7安装配置并重置用户密码

首先需要搞清楚msyql在本地是怎么安装配置、然后在根据如下步骤编写bat脚本:

思路

1.下载mysql5.7 zip格式安装包
2.新增data文件夹与my.ini配置文件
3.初始化数据库
4.安装mysql windows服务
5.启动并修改root密码(新增用户初始化授予权限)
6.新增数据库

在这里插入图片描述
my.ini 文件:

[client]
port=13306
[mysql]
default-character-set=utf8
[mysqld]
basedir=C:\other\mysql-5.7.42
datadir=C:\mysql-5.7.42\data
port=13306
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB

bat脚本

@echo off
echo windows10 x64 server Mysql init
REM 请求管理员权限并隐藏窗口
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 :: & echo 执行中,请稍候... & timeout 2 > nul","","runas",0)(window.close)&&exit
setlocal enabledelayedexpansionrem 设置 Mysql 目录变量,方便后续引用和修改
set ServiceName=MySQL57_LINSN%~d0
cd %~dp0
set CURRENT_DIR=%~dp0
set CURRENT_DIR=%CURRENT_DIR:~0,-1%set NEW_BASEDIR=%CURRENT_DIR%\mysql-5.7.42
set NEW_DATADIR=%CURRENT_DIR%\mysql-5.7.42\data
set MY_INI_PATH=%CURRENT_DIR%\mysql-5.7.42\my.inirem 创建一个临时文件用于存储更新后的配置
set TMP_FILE=%MY_INI_PATH%.tmprem 删除临时文件,如果它已经存在
if exist "%TMP_FILE%" del "%TMP_FILE%"echo query %ServiceName% state info ...
sc query "%ServiceName%" >nul 2>&1
if %errorLevel% equ 0 (rem 服务存在,检查服务状态for /f "tokens=2 delims=: " %%a in ('sc query "%ServiceName%" ^| find "STATE"') do (if /i "%%a" equ "RUNNING" (echo Mysql server state is RUNNING...) else if /i "%%a" equ "STOPPED" (echo Mysql server state is STOPPED...net start %ServiceName% ) else (echo Mysql server state is %%a...))
) else (rem 读取原始的my.ini并更新basedir和datadir。这里的循环就是更新了,更新的逻辑是如果看到配置文件中的一行以 basedir= 开头,我们就更新echo mysql-server update my.ini begin...for /f "tokens=*" %%A in ('type "%MY_INI_PATH%"') do (set "LINE=%%A"if "!LINE:~0,8!"=="basedir=" set "LINE=basedir=%NEW_BASEDIR%"if "!LINE:~0,8!"=="datadir=" set "LINE=datadir=%NEW_DATADIR%"echo !LINE!>>"%TMP_FILE%")rem 用更新后的配置替换原始的my.ini文件move /Y "%TMP_FILE%" "%MY_INI_PATH%"echo my.ini is update...REM 初始化 MySQLecho 初始化 MySQL..."%NEW_BASEDIR%\bin\mysqld.exe" --initialize-insecure --user=mysqlrem 服务不存在,初始化服务echo mysql-server is not exist, init server %ServiceName%"%NEW_BASEDIR%\bin\mysqld.exe" --install %ServiceName%echo mysql-server start server %ServiceName%net start %ServiceName%	REM 假设 SQL 脚本名为 adserver-simple,位于当前目录下echo adserver-simple.sql ..."%NEW_BASEDIR%\bin\mysql.exe" -u root < adserver-simple.sqlREM 重置 root 用户密码echo reset root psd..."%NEW_BASEDIR%\bin\mysql.exe" -u root < mysql-user-init.sql
)echo windows-server-mysql success
endlocalREM 执行完成后自动关闭
timeout /t 2 >nul
exit

mysql-user-init.sql:重置root密码(并新增zhangsan用户授予权限)

use mysql;
alter user 'root'@'localhost' IDENTIFIED BY 'Yess5678!';
CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY 'Abc123!@';
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'localhost';
FLUSH PRIVILEGES;

adserver-simple.sql:创建数据库sql脚本

亲测有效。

相关文章:

  • Java使用RabbitMQ的详细教程(原生框架)
  • 酒店智能门锁SDK接口pro[V10] 对接酒店收银-模块封装C#-SAAS本地化-未来之窗行业应用跨平台架构
  • NIO基础
  • Python机器学习:数据预处理与清洗的打开方式
  • 【羊毛资源】华为云开发者云主机免费申请使用指南
  • 线程池:线程池的实现 | 日志
  • 【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版
  • uniapp微信小程序,获取上一页面路由
  • YOLO11震撼发布!
  • 服装时尚与动漫游戏的跨界联动:创新运营与策划策略研究
  • erlang学习:Linux命令学习8
  • 完整网络模型训练(一)
  • 思科dhcp的配置
  • Elasticsearch学习笔记(3)
  • C++:一文搞懂友元类(friend class)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • centos安装java运行环境jdk+tomcat
  • cookie和session
  • Iterator 和 for...of 循环
  • Java面向对象及其三大特征
  • Mysql数据库的条件查询语句
  • Next.js之基础概念(二)
  • React-生命周期杂记
  • Selenium实战教程系列(二)---元素定位
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue中实现单选
  • windows下使用nginx调试简介
  • 聊聊flink的BlobWriter
  • 使用agvtool更改app version/build
  • 思考 CSS 架构
  • 一份游戏开发学习路线
  • 在weex里面使用chart图表
  • 阿里云服务器购买完整流程
  • 阿里云移动端播放器高级功能介绍
  • ​ubuntu下安装kvm虚拟机
  • $L^p$ 调和函数恒为零
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (四)软件性能测试
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转载)虚函数剖析
  • .bashrc在哪里,alias妙用
  • .net 后台导出excel ,word
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [000-002-01].数据库调优相关学习
  • [2018-01-08] Python强化周的第一天
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [bzoj1912]异象石(set)
  • [BZOJ2850]巧克力王国
  • [C++]STL之map