首页 > 数据库 >Windows上实现jdk、Mysql(含数据)整体环境和配置以及数据迁移复用(Bat中实现jdk、mysql环境变量配置、修改my.ini文件路径以及安装mysql服务)

Windows上实现jdk、Mysql(含数据)整体环境和配置以及数据迁移复用(Bat中实现jdk、mysql环境变量配置、修改my.ini文件路径以及安装mysql服务)

时间:2024-07-04 10:33:16浏览次数:26  
标签:Bat jdk 路径 bat mysql 安装 环境变量

场景

若依前后端分离版手把手教你本地搭建环境并运行项目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

前后端分离的系统,需要部署在windows服务器上,若后期需要部署的机器较多,

则每台机器都需要安装jdk、配置jdk环境变量、安装mysql、配置mysql环境变量、导入mysql的表数据,

如果使用nginx代理前端dist包,还需要根据每台服务器的实际存放路径修改配置文件中的绝对路径地址。

如何能实现在一台windows电脑上部署成功后,其它机器可以快速复用。

比如jdk不需要人为点击exe程序包进行安装,可以直接迁移并可通过运行bat的方式将jdk的环境变量配置好。

又比如mysql在一台windows上安装配置好之后可以直接复制整个目录到另一条电脑,并通过双击bat的方式实现快速

执行配置mysql环境变量以及安装msyql服务的操作,使迁移之后保留原数据库的数据、配置。

当然如果系统部署在linux服务器上可以使用docker以及导出导入镜像的方式实现服务迁移和复用。

那么在windows服务器上迁移为减少人工干预的工作,可以按照如下方式实现。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

Window上jdk的安装后的整体迁移、复用、离线部署以及Bat中实现配置JDK环境变量

windows上实现jdk的安装通常是下载exe包并手动安装。比如下载jdk-8u301-windows-x64.exe并双击运行然后设置安装目录。

然后手动将安装目录添加到环境变量中。

其实可以通过在一台windows上安装完jdk的目录整体复制从而实现jdk的迁移工作。

比如下面安装时选择的默认位置C:\Program Files\Java

则将该目录下两个目录整体复制迁移即可,这里将其复制到资料目录下的Java目录下

 

则将上面Java目录复制到另一台服务器的某磁盘路径下即可,建议不要放在C盘和中文路径下。

BAT中获取当前路径并配置JDK环境变量

在上面Java目录下同级目录新建bat文件,修改bat内容添加如下

首先设置中文编码

chcp 65001

Bat中获取当前目录的绝对路径

SET "ABS_PATH=%~dp0"
ECHO 当前目录的绝对路径是: %ABS_PATH%

设置当前路径的jdk的路径

set JAVA_HOME=%ABS_PATH%Java\jdk1.8.0_301

提取系统变量path并添加JAVA_HOME的bin到path中

set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
for /F "skip=2 tokens=3" %%i IN ('reg query %key% /v "Path"') do (
echo 原始Path ======= %%i
set temppath=%%i
)
 
echo 设置jdk环境变量
setx /M JAVA_HOME "%JAVA_HOME%"
 
setx /M path "%temppath%%%JAVA_HOME%%\bin"

执行此bat并去环境变量中验证效果

 

并另起一个cmd,输入java -version 验证。

注意此bat要以管理员模式运行,否则提示被拒绝。

可自行添加是否为管理员模式的验证逻辑。

Windows上Mysql的离线安装与整体环境迁移复用

首先安装mysql时采用解压并离线安装的方式进行

Mysql在Windows上离线安装与配置:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/117563780

然后将mysql的配置文件my.ini中的datadir设置为当前目录下,便于后期整体的数据迁移。

 

这样在一台电脑上解压离线安装并导入sql以及修改root密码等操作后就可以整体将这个目录进行迁移到另一台电脑上并复用。

在上面的离线安装过程中也需要设置mysql的环境变量,下面使用bat实现。

Bat中实现配置mysql环境变量

流程与上面配置jdk流程写法基本一致,就是修改下路径即可

新建bat内容并修改如下

SET "ABS_PATH=%~dp0"
ECHO 当前目录的绝对路径是: %ABS_PATH%
set MYSQL_HOME=%ABS_PATH%mysql-8.0.26-winx64
echo MYSQL_HOME的路径为:%MYSQL_HOME%

echo 提取系统级变量path
set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
for /F "skip=2 tokens=3" %%i IN ('reg query %key% /v "Path"') do (
echo 原始Path ======= %%i
set temppath=%%i
)

echo 设置mysql环境变量
setx /M MYSQL_HOME "%MYSQL_HOME%"

setx /M path "%temppath%%%MYSQL_HOME%%\bin"

同理,此bat必须用管理员模式运行。

Bat中实现修改mysql配置文件my.ini指定行的内容(修改路径为获取当前路径)

上面离线安装的过程中,需要修改mysql的配置文件my.ini中配置文件。

比如这里需要修改basedir的路径为目录所在的路径,以及datadir的路径为目录下的data路径下。

但是这里无法通过设置相对路径的方式实现,所以考虑通过bat获取当前绝对路径,并通过行号修改my.ini的指定行的内容。

注意这里配置文件的行号要对应,这里basedir在第8行,datadir在第10行。

 

新建bat内容如下

setlocal enabledelayedexpansion

::获取当前路径的绝对路径
SET "ABS_PATH=%~dp0"
echo 当前目录的绝对路径是: %ABS_PATH%

::设置要修改的basedir的路径
set MYSQL_HOME=%ABS_PATH%mysql-8.0.26-winx64
::设置要修改的datadir的路径
set MYSQL_HOME_DATA=%ABS_PATH%mysql-8.0.26-winx64\data
::设置mysql配置文件my.ini的路径
set MYINI_PATH=%ABS_PATH%mysql-8.0.26-winx64\my.ini


:: 指定行号和新内容,格式为 "行号=新内容"
set"line8=basedir=%MYSQL_HOME%"
set"line10=datadir=%MYSQL_HOME_DATA%"
 
:: 读取原始文件,写入到临时文件,并替换指定行号的内容
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "%MYINI_PATH%"') do (
    set "line=%%a"
    set "content=%%b"
    if "!line!"=="8" (
        set "content=%line8%"
    )
    if "!line!"=="10" (
        set "content=%line10%"
    )
    >>"%MYINI_PATH%.new" echo !content!
)
 
:: 删除原始文件,重命名临时文件
del "%MYINI_PATH%"
ren "%MYINI_PATH%.new" "my.ini"
 
:: 结束本地环境变量延迟扩展
endlocal

Bat中实现安装并启动mysql服务

上面通过bat修改完my.ini指定行内容后,需要进行mysql服务的安装与启动

新建bat

echo ---------------------------安装mysql服务开始---------------------------------------
cd mysql-8.0.26-winx64
cd bin
call mysqld --initialize-insecure
call mysqld -install
call net start mysql
echo ---------------------------安装mysql服务完成---------------------------------------
pause

运行测试

 

可通过数据库连接工具连接验证。

如果安装过程中出现问题,需要停止掉msyql服务,可通过如下

net stop mysql

如果需要将mysql服务卸载掉,可通过

mysqld -remove

Nginx部署前端项目修改路径为相对路径并在windows上实现整体迁移复用

上面jdk、mysql等都可进行整体迁移复用,redis使用离线解压即可用,可直接整体迁移。

那么Nginx中部署的前端项目需要将路径修改为相对路径,不能再使用绝对路径了。

原nginx配置文件路径为绝对路径

        location / {
            root   D:/font/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

所以需要将前端项目路径修改为相对路径,便于整体迁移。

首先将dist包放在nginx的相对路径下

这里在nginx的根目录下新建font目录,并将dist放在此目录下,则nginx的配置文件可修改为在windows上的相对路径

        location / {
            root   font/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

注意font前面不要加斜杠。

 

后台jar包路径也不涉及绝对路径问题,那么整个项目的在windows上迁移复用就可以通过复制相对目录以及运行几个bat达到快速部署

和复用。

完整bat、配置文件资源下载

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/89513627

标签:Bat,jdk,路径,bat,mysql,安装,环境变量
From: https://www.cnblogs.com/badaoliumangqizhi/p/18283086

相关文章

  • doris 数据库与mysql的不同之处
    1.doris与mysqldoris可以使用mysql驱动进行连接,也支持mysql的部分语法。2.具体分析 清空表数据在mysql中,清空表数据有两种方式:一种是deletefromtable_name,一种是truncatetabletable_name。而在doris中,清空表数据只能使用truncatetabletable_name。deletefrom......
  • JAVA开发环境的搭建(JDK下载与安装)
    一、什么是JDK、JREJDK(JavaDevelopmentKit):是Java程序开发工具包,包含JRE和开发人员使用的工具。JRE(JavaRuntimeEnvironment):是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。小结:        JDK=JRE+开发工具集(例如Javac编译工具等)        ......
  • vue3+node.js+mysql+electron+express实现用户登录,文章写入删除,全量更新,增量更新,和截
    第一件事情是安装node.js,去官网下,在终端node-v,npm-v有版本号就行了,不必搞环境配置,保姆级别教程,感谢哥有时间。嘻嘻,祝大家开心。1.首先你要创建electron项目打开vscode,新建终端输入代码npminit这个代码是初始化的意思会生成一个文件package.json里面的代码应该是这......
  • mybatis-plus更新数据时,字段设为null不更新
    updateById()方法不能更新字段为null,即字段为null时,对该字段不会做处理解决方式:1、自己写sql更新,不用mybatisplus的快捷方法2、使用update方法结合UpdateWrapper方式更新以上两种最简便。其他方式:2.设置全局的FieldStrategy(不推荐)#properties文件格式:mybatis-plus.glob......
  • 搭建论坛和mysql数据库安装和php安装
    目录概念步骤安装mysql8.0.30安装php安装Discuz概念搭建论坛的架构:lnmp+DISCUZ l表示linux操作系统n表示nginx前端页面的web服务m表示mysql数据库用来保存用户和密码以及论坛的相关内容p表示php动态请求转发的中间件步骤(已经提前安装了nginx)1.关闭......
  • MySQL网络安全&容灾备份
    网络安全主要三个方面。一般云厂商都提供网络相关的安全:白名单、私有网络、SSL加密等。 网络:  MySQL服务器与客户端连接安全SSL(TLS)加密传输。  账户使用较弱的密码或不使用密码,账号安全。valited_password。  账号权限,最小化原则。  网络访问控制,云厂商使用白名单......
  • MySQL-表级锁(表锁、元数据锁、意向锁)
    文章目录1、表级锁介绍1.1、对于表级锁,主要分为以下三类:2、表锁2.1、对于表锁,分为两类:2.2、共享读锁2.2.1、创建表score2.3、独占写锁3、元数据锁3.1、查看数据库中的元数据锁的情况4、意向锁4.1、假如没有意向锁4.2、有了意向锁之后4.3、查看意向锁及行锁的加锁情......
  • MySQL-16.MVCC(多版本并发控制)
    C-16.多版本并发控制1.什么是MVCCMVCC(MultiversionConcurrencyControl),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一事务更新的行,并且......
  • jdk17 package sun.misc.BASE64Encoder 报找不到符号
    解决办法:对于只需要Base64编码的简单场景,可以考虑使用Java8及以上版本提供的内置`java.util.Base64`类,这是一个标准API,无需额外引入任何库: //importsun.misc.BASE64Encoder;//java8importjava.util.Base64;//java17publicclassBase64EncodingExample{......
  • MySQL在本机环境安装过程及问题解决
    最近在我的Windows10电脑上搭建MySQL数据库环境,没想到居然遇到了不少问题,特记录下来,希望给大家帮助,少走弯路。下载MySQLCommunityServer https://dev.mysql.com/downloads/mysql/ MySQLCommunityServeristheworld'smostpopularopensourcedatabase.这个社区......