美文网首页@IT·互联网读书
mysql精简单机版,免登录,可复制,不启动服务与本机mysql

mysql精简单机版,免登录,可复制,不启动服务与本机mysql

作者: 技术栈 | 来源:发表于2022-06-09 14:47 被阅读0次

突然有了个需要在本地使用的mysql需求,要求不用安装,随拷随用,不影响其他mysql服务,占用空间小.基于这种需求做了个精简版的mysql

首先下载mysql的zip安装包

> windows 64位
> https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36-winx64.zip
> windows 32位
> https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36.zip

建议32位和64位按系统下载,实测不同位对动态链接库的需求区别还是比较大.32位并不一定可以在64位下运行.

将需要的版本压缩包解压

解压后删除docs,include文件夹,对于bin目录下的.pdb文件,和一些用不到的辅助程序都可以删除.

最后bin目录如下

image.png

lib目录如下

image.png

share目录如下

image.png

share目录除各个国家的语言之外sql脚本不要轻易删除,而且这个目录中的sql在初始化时会使用,占用空间都不大。

文件处理完成之后整个文件夹大小在100M左右,压缩后能到40M左右

编写my.ini配置文件

[mysqld]
# 设置13307端口
port = 13307
# 允许最大连接数
max_connections=200
# 服务端使用utf8符集
character-set-server=utf8
# 创建新表时将使用INNODB存储引擎
default-storage-engine=INNODB
#绑定127.0.0.1地址,最后是以skip-grant-tables模式启动,限制本地连接,增加安全性<br>bind-address=127.0.0.1

编写启动脚本setup.bat

@echo off
rem simple mysql.5.7.35 win32
copy "C:\Windows\system32\msvcr120.dll" %~dp0bin
copy "C:\Windows\system32\msvcp120.dll" %~dp0bin
if not exist "%~dp0data" md "%~dp0data"
if not exist "%~dp0data\ibdata1" (
%~dp0bin\mysqld.exe --initialize --console
xcopy %~dp0template_data %~dp0data /s /f /h /q /e /y
)
start /b %~dp0bin\mysqld.exe --defaults-file=%~dp0my.ini --skip-grant-tables --shared-memory
echo 'mysqld server is running...'

最终目录

image.png

脚本说明

1.template_data和bin同级别,此文件夹存储复制过来的schema,注意复制的时候需要把ibdata1文件也复制过来

2.之所以复制msvcr120.dll和msvcp120.dll 因为在windows7系统中可能在运行32位/64位程序时会提示这两个dll文件缺失(其实并没有缺失,只是没有找到)

3.因为使用的是innodb引擎,所以mysql的数据表复制时是需要ibdata1文件的(innodb引擎下将表结构存储在ibdata1文件中,myisam则不用),因此以data文件夹下是否存在ibdata1文件来判断mysql是否被初始化,若没有初始化,则进行mysqld初始化,然后将tempalte_data文件夹中的所有文件都复制到data文件夹下

4.加入--skip-grant-tables,有了这个参数,本机可以直接进入mysql,而不用管用户名密码是多少.因为初始化之后系统会生成一个复杂密码,这个用脚本修改挺麻烦的,所以就直接跳过权限表的加载了,

启动

直接双击setup.bat就行,建议不要在C盘进行上述操作,C盘可能需要管理员权限。

经测试一般的增删查改功能都能正常使用,mysql,navicat,jdbc都可以正常连接和使用。

相关文章

  • mysql精简单机版,免登录,可复制,不启动服务与本机mysql

    突然有了个需要在本地使用的mysql需求,要求不用安装,随拷随用,不影响其他mysql服务,占用空间小.基于这种需...

  • Ubuntu 重置MySQL Root密码

    环境 Ubuntu 16.04 i386 1.停止MySQL服务 2.跳过认证启动MySQL服务 3.免密码登录M...

  • mysql 基本信息

    不登录mysql查看本机安装的mysql版本: 命令行: # Mysql -V

  • mysql 启动登录

    先确保mysql是启动的输入 net start mysql 启动mysql的服务 再登录 mysql -u ...

  • mysql学习笔记(一)

    启动mysql服务: 关闭mysql服务: mysql 登录 mysql 退出 修改mysql提示符 1、链接客户...

  • MYSQL实操日记

    1、连接、登录MySQL 搭建好环境,启动MYSQL服务:net start mysql 然后登录MySQL数据库...

  • MySQL

    启动MySQL服务 停止MySQL服务 MySQL登录 MySQL退出 MySQL语句的规范 创建数据库 查看当前...

  • MySql8安装--centos7系统

    配置yum源 安装mysql源 安装mysql 启动mysql服务 设置开机启动 修改登录密码 添加远程登录用户 ...

  • 数据库、表操作

    1.启动MySQL服务 启动:net start mysql; 关闭:net stop mysql; 登录数据库:...

  • 1.初涉MySQL

    启动MySQL 方法1: 方法2: 停止MySQL服务 登录服务 退出服务 cls清除cmd内容 修改MySQL提...

网友评论

    本文标题:mysql精简单机版,免登录,可复制,不启动服务与本机mysql

    本文链接:https://www.haomeiwen.com/subject/eojmmrtx.html