当前位置:   article > 正文

Windows安装Mysql Bat脚本一键安装Mysql_mysql一键安装脚本win

mysql一键安装脚本win

目录

一、Mysql 5.7 ZIP下载地址

二、创建初始化SQL

三、一键安装Bat脚本

四、卸载服务脚本

五、总结


这篇文章是基于Windows 10系统和MySQL版本5.7的,它介绍了如何使用Bat脚本一键部署MySQL,并将其注册为开机自启动的Windows服务,同时完成数据库的初始化和用户设置。

一、Mysql 5.7 ZIP下载地址

        Mysql ZIP官方下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

        根据自己电脑位数下载对应的ZIP包。并解压

二、创建初始化SQL

        新建一个init文件夹,用于存放数据库的初始化和用户设置的SQL

        新建一个初始化用户的SQL文件init_account.sql

  1. ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  3. FLUSH PRIVILEGES;

        再可添加自己需要初始化的数据库SQL.例如:ry-config.sql

  1. DROP DATABASE IF EXISTS `ry-config`;
  2. CREATE DATABASE `ry-config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  3. SET NAMES utf8mb4;
  4. SET FOREIGN_KEY_CHECKS = 0;
  5. USE `ry-config`;
  6. /******************************************/
  7. /* 表名称 = config_info */
  8. /******************************************/
  9. CREATE TABLE `config_info` (
  10. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  11. `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  12. `group_id` varchar(255) DEFAULT NULL,
  13. `content` longtext NOT NULL COMMENT 'content',
  14. `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  15. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  16. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  17. `src_user` text COMMENT 'source user',
  18. `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  19. `app_name` varchar(128) DEFAULT NULL,
  20. `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  21. `c_desc` varchar(256) DEFAULT NULL,
  22. `c_use` varchar(64) DEFAULT NULL,
  23. `effect` varchar(64) DEFAULT NULL,
  24. `type` varchar(64) DEFAULT NULL,
  25. `c_schema` text,
  26. `encrypted_data_key` text COMMENT '秘钥',
  27. PRIMARY KEY (`id`),
  28. UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
  30. insert into config_info(id, data_id, group_id, content, md5, gmt_create, gmt_modified, src_user, src_ip, app_name, tenant_id, c_desc, c_use, effect, type, c_schema, encrypted_data_key) values
  31. (1,'application-dev.yml','DEFAULT_GROUP','spring:\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\n mvc:\n pathmatch:\n matching-strategy: ant_path_matcher\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n min-request-size: 8192\n response:\n enabled: true\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n','58dde4e3760499d3bac2d77a3a1e9018','2020-05-20 12:00:00','2023-12-04 08:08:23','nacos','0:0:0:0:0:0:0:1','','','通用配置','null','null','yaml','',''),
  32. (2,'ruoyi-gateway-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: localhost\n port: 6379\n password:\n cloud:\n gateway:\n discovery:\n locator:\n lowerCaseServiceId: true\n enabled: true\n routes:\n # 认证中心\n - id: ruoyi-auth\n uri: lb://ruoyi-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - CacheRequestFilter\n - ValidateCodeFilter\n - StripPrefix=1\n # 代码生成\n - id: ruoyi-gen\n uri: lb://ruoyi-gen\n predicates:\n - Path=/code/**\n filters:\n - StripPrefix=1\n # 定时任务\n - id: ruoyi-job\n uri: lb://ruoyi-job\n predicates:\n - Path=/schedule/**\n filters:\n - StripPrefix=1\n # 系统模块\n - id: ruoyi-system\n uri: lb://ruoyi-system\n predicates:\n - Path=/system/**\n filters:\n - StripPrefix=1\n # 文件服务\n - id: ruoyi-file\n uri: lb://ruoyi-file\n predicates:\n - Path=/file/**\n filters:\n - StripPrefix=1\n\n# 安全配置\nsecurity:\n # 验证码\n captcha:\n enabled: true\n type: math\n # 防止XSS攻击\n xss:\n enabled: true\n excludeUrls:\n - /system/notice\n # 不校验白名单\n ignore:\n whites:\n - /auth/logout\n - /auth/login\n - /auth/register\n - /*/v2/api-docs\n - /csrf\n','57cec5abd0e0a6b77d853750344a9dc0','2020-05-14 14:17:55','2022-09-29 02:48:32','nacos','0:0:0:0:0:0:0:1','','','网关模块','null','null','yaml','',''),
  33. (3,'ruoyi-auth-dev.yml','DEFAULT_GROUP','spring:\n redis:\n host: localhost\n port: 6379\n password:\n','8bd9dada9a94822feeab40de55efced6','2020-11-20 00:00:00','2022-09-29 02:48:42','nacos','0:0:0:0:0:0:0:1','','','认证中心','null','null','yaml','',''),
  34. (4,'ruoyi-monitor-dev.yml','DEFAULT_GROUP','# spring\nspring:\n security:\n user:\n name: ruoyi\n password: 123456\n boot:\n admin:\n ui:\n title: 若依服务状态监控\n','6f122fd2bfb8d45f858e7d6529a9cd44','2020-11-20 00:00:00','2022-09-29 02:48:54','nacos','0:0:0:0:0:0:0:1','','','监控中心','null','null','yaml','',''),
  35. (5,'ruoyi-system-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n connectTimeout: 30000\n socketTimeout: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n # 主库数据源\n master:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: password\n # 从库数据源\n # slave:\n # username: \n # password: \n # url: \n # driver-class-name: \n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.ruoyi.system\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 系统模块接口文档\n license: Powered By ruoyi\n licenseUrl: https://ruoyi.vip','00678c89684ec0b825cb9b71e032db64','2020-11-20 00:00:00','2023-12-04 07:51:28','nacos','0:0:0:0:0:0:0:1','','','系统模块','null','null','yaml','',''),
  36. (6,'ruoyi-gen-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password:\n datasource:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: password\n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.ruoyi.gen.domain\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 代码生成接口文档\n license: Powered By ruoyi\n licenseUrl: https://ruoyi.vip\n\n# 代码生成\ngen:\n # 作者\n author: ruoyi\n # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool\n packageName: com.ruoyi.system\n # 自动去除表前缀,默认是false\n autoRemovePre: false\n # 表前缀(生成类名不会包含表前缀,多个用逗号分隔)\n tablePrefix: sys_\n','eb592420b3fceae1402881887b8a6a0d','2020-11-20 00:00:00','2022-09-29 02:49:42','nacos','0:0:0:0:0:0:0:1','','','代码生成','null','null','yaml','',''),
  37. (7,'ruoyi-job-dev.yml','DEFAULT_GROUP','# spring配置\nspring:\n redis:\n host: localhost\n port: 6379\n password: \n datasource:\n driver-class-name: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8\n username: root\n password: password\n\n# mybatis配置\nmybatis:\n # 搜索指定包别名\n typeAliasesPackage: com.ruoyi.job.domain\n # 配置mapper的扫描,找到所有的mapper.xml映射文件\n mapperLocations: classpath:mapper/**/*.xml\n\n# swagger配置\nswagger:\n title: 定时任务接口文档\n license: Powered By ruoyi\n licenseUrl: https://ruoyi.vip\n','edcf0e3fe13fea07b4ec08b1088f30b3','2020-11-20 00:00:00','2022-09-29 02:50:50','nacos','0:0:0:0:0:0:0:1','','','定时任务','null','null','yaml','',''),
  38. (8,'ruoyi-file-dev.yml','DEFAULT_GROUP','# 本地文件上传 \r\nfile:\r\n domain: http://127.0.0.1:9300\r\n path: D:/ruoyi/uploadPath\r\n prefix: /statics\r\n\r\n# FastDFS配置\r\nfdfs:\r\n domain: http://8.129.231.12\r\n soTimeout: 3000\r\n connectTimeout: 2000\r\n trackerList: 8.129.231.12:22122\r\n\r\n# Minio配置\r\nminio:\r\n url: http://8.129.231.12:9000\r\n accessKey: minioadmin\r\n secretKey: minioadmin\r\n bucketName: test','5382b93f3d8059d6068c0501fdd41195','2020-11-20 00:00:00','2020-12-21 21:01:59',NULL,'0:0:0:0:0:0:0:1','','','文件服务','null','null','yaml',NULL,''),
  39. (9,'sentinel-ruoyi-gateway','DEFAULT_GROUP','[\r\n {\r\n \"resource\": \"ruoyi-auth\",\r\n \"count\": 500,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"ruoyi-system\",\r\n \"count\": 1000,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"ruoyi-gen\",\r\n \"count\": 200,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n },\r\n {\r\n \"resource\": \"ruoyi-job\",\r\n \"count\": 300,\r\n \"grade\": 1,\r\n \"limitApp\": \"default\",\r\n \"strategy\": 0,\r\n \"controlBehavior\": 0\r\n }\r\n]','9f3a3069261598f74220bc47958ec252','2020-11-20 00:00:00','2020-11-20 00:00:00',NULL,'0:0:0:0:0:0:0:1','','','限流策略','null','null','json',NULL,'');

三、一键安装Bat脚本

        前期准备工作已经准备妥当。开始书写安装脚本 test_mysql.bat

  1. @echo off
  2. echo "%~dp0%"
  3. echo "%cd%"
  4. set mysql_path=%~dp0%
  5. set file=%mysql_path%mysql\my.ini
  6. echo [mysql]> "%file%"
  7. REM 设置mysql客户端默认字符集
  8. echo default-character-set=utf8>> "%file%"
  9. echo [mysqld]>> "%file%"
  10. REM 设置3306端口
  11. echo port=3306>> "%file%"
  12. REM 允许最大连接数
  13. echo max_connections=200>> "%file%"
  14. REM 允许连接失败的次数。
  15. echo max_connect_errors=10>> "%file%"
  16. REM 服务端使用的字符集默认为utf8
  17. echo character-set-server=utf8>> "%file%"
  18. REM 创建新表时将使用的默认存储引擎
  19. echo default-storage-engine=INNODB>> "%file%"
  20. echo explicit_defaults_for_timestamp=true>> "%file%"
  21. REM 默认使用“mysql_native_password”插件认证
  22. echo default_authentication_plugin=mysql_native_password>> "%file%"
  23. REM 设置mysql的安装目录 ---这里输入你安装的文件路径----
  24. echo basedir=%mysql_path%\mysql>> "%file%"
  25. REM 设置mysql数据库的数据的存放目录
  26. echo datadir=%mysql_path%\mysql\\data>> "%file%"
  27. echo [client]>> "%file%"
  28. REM 设置mysql客户端连接服务端时默认使用的端口
  29. echo port=3306>> "%file%"
  30. echo,default-character-set=utf8>> "%file%"
  31. echo "set mysql my.ini success"
  32. REM mysqld.exe文件启动MYSQL。
  33. REM --initialize-insecure:这是个选项,表示在初始化 MySQL 数据库时使用无需密码登陆方式。
  34. REM --user=mysql这个选项指定了 MySQL 服务器运行时使用的操作系统用户。
  35. REM --console:这个选项指示 MySQL 服务器将日志输出到控制台,而不是写入到日志文件中
  36. %mysql_path%mysql\bin\mysqld.exe --initialize-insecure --user=mysql --console
  37. REM --install:这是一个选项,表示将 MySQL 服务器安装为 Windows 的服务。
  38. %mysql_path%mysql\bin\mysqld.exe
  39. REM 启动mysql服务
  40. net start mysql
  41. REM 使用root用户无密码登陆初始化数据库
  42. %mysql_path%mysql\bin\mysql.exe -u root < %mysql_path%mysql\init\ry-config.sql
  43. REM 使用root用户无密码登陆初始化用户密码
  44. %mysql_path%mysql\bin\mysql.exe -u root < %mysql_path%mysql\init\init_account.sql
  45. echo Password for root user has been changed successfully.
  46. pause

有两点需要注意修改的:

  1. A、basedir这里输入的是mysql解压存放的文件路径
  2. B、datadir这里设置mysql数据库的数据存放目录

脚本与解压的mysql目录同级

四、卸载服务脚本

        删除mysql服务脚本 uninstall.bat

  1. @echo off
  2. echo start delete mysql
  3. net stop "mysql"
  4. sc delete "mysql"
  5. echo end delete mysql
  6. pause

五、总结

        安装脚本会动态创建my.ini文件。执行安装脚本会覆盖之前的文件,如果需要保持不变,可以删除安装脚本中的输出语句。

        安装脚本可以多次执行,没有问题。当root账户初始化密码后,使用"mysql -u root"命令将无法登陆,需要输入密码登陆。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/981411
推荐阅读
相关标签
  

闽ICP备14008679号