当前位置: 首页 > 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脚本

亲测有效。

http://www.lryc.cn/news/448147.html

相关文章:

  • 文件上传、amrkdown编辑器
  • Linux防火墙-4表5链
  • (最新已验证)stm32 + 新版 onenet +dht11+esp8266/01s + mqtt物联网上报温湿度和控制单片机(保姆级教程)
  • 无环SLAM系统集成后端回环检测模块(loop):SC-A-LOAM以及FAST_LIO_SLAM
  • 速盾:视频开cdn合适还是视频点播合适?
  • Mac电脑安装FFmpeg和卸载FFmpeg
  • 数据结构:栈 及其应用
  • 批量发送邮件:性能优化与错误处理深度解析
  • STM32原理知识查询表
  • 从 Kafka 到 WarpStream: 用 MinIO 简化数据流
  • 【Gitee自动化测试4】本地Git分支的增删查,本地Git分支中文件的增删查,本地文件的暂存/提交,本地分支的推送
  • vue-baidu-map的基本使用
  • 策略路由控制选路
  • 【数据结构和算法实践-排序-快速排序】
  • 测试面试题:请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
  • 回归预测合集|基于灰狼优化21个机器学习和深度学习的数据回归预测Matlab程序 多特征输入单输出
  • html/css怎么禁用浏览器自动填写
  • 信息安全工程师(22)密码学网络安全应用
  • 算法打卡:第十一章 图论part08
  • 2024年Gartner主存储平台魔力象限报告 | 华为从领导者象限滑落到挑战者象限
  • [Python学习日记-31] Python 中的函数(上)
  • 工作笔记【四】
  • ArcEngine C#二次开发图层处理:根据属性分割图层(Split)
  • 【二叉平衡搜索树】Treap
  • Spring Boot 应用Kafka讲解和案例示范
  • 以到手价为核心的品牌电商价格监测
  • Android中使用RecyclerView制作横向轮播列表及索引点
  • Llama 3.1 技术研究报告-2
  • 【深度学习】05-RNN循环神经网络-02- RNN循环神经网络的发展历史与演化趋势/LSTM/GRU/Transformer
  • C++学习9.27