网站建设的重点难点,外包服务有限公司,dz门户网站模板,企业培训有哪些方面前言
在全新环境中安装MySQL与Redis操作是挺麻烦的#xff0c;于是就想使用脚本来自动安装#xff0c;使用批处理进行一步到位的安装#xff0c;后面还能使用工具进行打包成exe可执行文件#xff0c;一键安装#xff0c;最后能够更好的部署项目到windows系统的服务器。
…
前言
在全新环境中安装MySQL与Redis操作是挺麻烦的于是就想使用脚本来自动安装使用批处理进行一步到位的安装后面还能使用工具进行打包成exe可执行文件一键安装最后能够更好的部署项目到windows系统的服务器。
代码与实现
本次是安装mysql8.0和redis5.0安装在windows系统。
整体思路
流程很简单需要获取安装的路径文件所在路径配置环境变量安装服务修改mysql密码。接下来一步一步解析。
安装mysql
1)、下载mysql压缩包
首先需要下载免安装的MySQL压缩包https://dev.mysql.com/downloads/mysql/
下载完后解压就会看到以下目录接下来我们需要创建data文件 以及 my.ini的配置文件!
2)、添加配置文件my.ini
当然配置文件也是可以通过dos指令输入进去的只是为了方便我们这里可以通过事先配置好存放进去详细配置可以看如下
[mysql]
default-character-setutf8
[mysqld]
port13306
basedirD:\Desktop\tested\mysql-8.0.30
datadirD:\Desktop\tested\mysql-8.0.30\data
max_connections200
max_connect_errors10
character-set-serverutf8
default-storage-engineINNODB
[client]
port13306
default-character-setutf8basedirmysql解压所在的文件路径 datadir数据存放的地址 注要注意的是在输入路径地址的时候要使用’//’ 3)、命令代码
前置工作准备完成接下来就可以看一下批处理命令。
①、设置安装路径
首先就是对变量的过去与设置
set cds%~dp0
set mysql_path%cds%mysql-8.0.30%~dp0获取当前的路劲地址绝对路径
②、配置环境变量
将mysql\bin下的路径设置到path环境变量里面后面是输出此时path的环境变量以下代码包括设置了redis的环境变量。
echo 配置环境变量
echo.
setx path %redis_path%;%mysql_path%\bin;%path% /m
IF ERRORLEVEL 1 (
echo.
echo 配置环境变量失败即将退出
echo.
goto END
)
echo.
echo 打印环境变量
echo.
echo
set str%path%
echo 所有变量%str%
echo
echo.③、安装mysql服务
先设置MySQL服务的名字为了防止存在相同的服务将设置好的服务名称的服务通过net stop %service_name%停掉并且将mysql的data删除(这部需要谨慎处理)接着对mysql进行初始化接着通过mysqld.exe去安装服务。
:: 设置mysql服务名字mysql82
set service_namemysql82
net stop %service_name%
echo 删除原DATA
:: 删除原本的MySQL数据
rd /s /q %mysql_path%\data
echo 删除原MYSQL服务
%mysql_path%\bin\mysqld.exe --remove %service_name%
echo 初始化DATA
md %mysql_path%\data
echo 安装MYSQL SERVICE
%mysql_path%\bin\mysqld.exe --initialize --usermysql --console
%mysql_path%\bin\mysqld.exe --install %service_name%④、修改密码
mysql8.0之后的版本不能通过修改mysql.user 表来修改用户密码取消了password函数使用authentication_stringpassword(123456)去修改密码会报错。按照只是用解压缩配置文件.ini来安装是需要先通过初始化之后生成的随机临时密码登录在进行修改密码。对于这个修改密码我也是找了很久看了很多篇文章最后发现了解决方案。
解决办法
首先有一种通过mysqld --console --skip-grant-tables --shared-memory的方法启动服务器在是使用修改密码命令去改变密码。可是这种在使用批处理的时候遇到了许多问题因为是新手对指令这些逻辑还不是很清楚因为使用这种方式启动MySQL原来的思路是等它启动服务后用新的命令窗口去执行修改密码接着关闭新窗口往下继续进行但是会出现这条启动服务的任务不会自动完成。通过跳过密码验证就会使得无法往下继续执行需要使用新的窗口来进行修改密码。这也就会导致接下来的命令就会无法执行。
接着后面使用第二种方式需要在外部新建一个配置文件用来进行修改密码的。使用-init-file重置MySQL Root密码。
ALTER USER rootlocalhost IDENTIFIED BY root;思路也很简单只要使用新的窗口来执行这条语句在把这个新的窗口关掉就能够恢复初始窗口继续执行。
start 更改密码 cmd /c %mysql_path%\bin\mysqld.exe --usermysql --init-file%cds%init-file.ini --console
timeout /t 5
echo 终止mysqld进程
taskkill /f /im mysqld.exestart执行命令”更改密码“是命令窗口的标题后面是使用mysqld
timeout /t 5 倒计时5秒
taskkill /f /im mysqld.exe杀死这个进程
详细方案可以看一下这位大佬写的我的灵感也是得之于他如何在MySQL 8.0中重置Root密码 - 腾讯云开发者社区-腾讯云
⑤、按照完毕
安装完毕就可以去执行启动mysql服务
net start %service_name%安装redis
安装redis就更简单了就直接使用安装指令就行
cd /d%redis_path%
redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose
echo 启动redis服务
redis-server.exe --service-start --service-name %redis_server_name%代码附件
以下是所有的代码
echo off
chcp 65001
title 安装MYSQL与Redis
echo.
echo
echo 开始安装MYSQL8.0
echo
echo.
set cds%~dp0
set mysql_path%cds%mysql-8.0.30
set redis_path%cds%Redis5.0
echo.
echo 数据库安装路径%mysql_path%
echo Redis安装路径%redis_path%
echo.
echo 配置环境变量
echo.
setx path %redis_path%;%mysql_path%\bin;%path% /m
IF ERRORLEVEL 1 (
echo.
echo 配置环境变量失败即将退出
echo.
goto END
)
echo.
echo 打印环境变量
echo.
echo
set str%path%
echo 所有变量%str%
echo
echo.
echo 正在安装MYSQL服务
echo.
:: 设置mysql服务名字mysql82
set service_namemysql82
net stop %service_name%
echo.
echo 删除原DATA
echo.
:: 删除原本的MySQL数据
rd /s /q %mysql_path%\data
echo.
echo 删除原MYSQL服务
echo.
%mysql_path%\bin\mysqld.exe --remove %service_name%
echo.
echo 初始化DATA
echo.
md %mysql_path%\data
echo.
echo 安装MYSQL SERVICE
echo.
%mysql_path%\bin\mysqld.exe --initialize --usermysql --console
%mysql_path%\bin\mysqld.exe --install %service_name%
echo 关闭mysql服务
net stop %service_name%
:: 修改密码
echo 执行更改密码start 更改密码 cmd /c %mysql_path%\bin\mysqld.exe --usermysql --init-file%cds%init-file.ini --console timeout /t 5
echo 终止mysqld进程
taskkill /f /im mysqld.exenet start %service_name%
echo.
echo
echo 启动MYSQL SERVICESERVICE NAME 》mysql82
echo.
echo 修改密码root
echo.
echo
echo.
echo 安装redis
:: 设置redis服务名字redis5
set redis_server_nameredis5
echo.
echo ****正在安装REDIS服务****
echo.
echo 停止原REDIS服务
echo.
net stop %redis_server_name%
echo 删除redis服务
sc delete %redis_server_name%
echo.
cd /d%redis_path%
redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose
echo 启动redis服务
redis-server.exe --service-start --service-name %redis_server_name%
:END