有时候需要交流数据等,为保证环境一致,且有时本机就有不同版本的mysql,再去导入数据等非常麻烦,还有字符集等的影响,故而一个和原机器环境基本无关的musql及其数据库文件等就比较重要:
测试过了,MySQL5.7 和 MySQL 8.0 都是可以的
机器环境为WIN10,后期会在其他机器环境也进行测试。
首先在MySQL 官网上下载其zip版
解压后在其根目录下新建my.ini 文件,及data文件夹
在my.ini中进行一些基本设置
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3307
# 设置mysql的安装目录
basedir="./"
# 设置mysql数据库的数据的存放目录
datadir="./data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 数据对象命名忽略大小写
lower_case_table_names=1
保存后
再在根目录下新建两个bat文件
mysqld_initialize.bat
作用:初始化data文件夹
"bin\mysqld" --defaults-file="my.ini" --standalone --explicit_defaults_for_timestamp --initialize
mysqld_start.bat
作用:启动mysqld进程(打开后不要关闭该窗口)
"bin\mysqld" --defaults-file="my.ini" --standalone --explicit_defaults_for_timestamp
先运行mysqld_initialize.bat (这个只用运行一次即可)
(如果win7弹出 msvcp140.dll丢失 或者 vcruntime140_1.dll丢失 的错误,是microsoft 的 vs 库不全
去micsoft官网里下载安装下 https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0 )
然后以后如果要使用这个mysql服务器,
只要运行mysqld_start.bat 即可(黑窗口不关闭,为了方便和避免和原有服务冲动等,就不注册服务什么这些)
如果需要更改端口,更改这个my.ini文件里的port设置即可。
启动服务后,初次登陆要输入密码,在我们建的那个data文件夹里
data\%computername%.err file
会有这样一行
2021-06-08T10:03:20.303687Z 1 [Note] A temporary password is generated for root@localhost: eusSK_I2Ywza
然后cmd进入mysql的bin目录运行:(如果已将mysql的bin目录加入环境变量Path则可在随意目录直接运行)
用如下代码
mysql -h127.0.0.1 -P3307 -uroot -p
(经测试如果单机运行多个库 用 mysql -hlocalhost -P3307 -uroot -p 可能有问题 ,故将 localhost改为 127.0.0.1 回环地址)
输入密码后登录进入,接着需要更改密码,否则无法进行其他操作
接着在该mysql命令行输入
alter user 'root'@'localhost' identified by 'yourpassword'
更改密码
CONTINUE....(至此 mysqld_portable 基本完成,后期我在使用中可能会尝试看看能否把官网的Linux各发行版的包也整合进来,使得一套库可以到处使用,)
(注意,WIN10不要往C:\Program Files\ 或者其他需要管理员权限的目录里放,会出现奇怪的问题无法启动,
自己在非系统盘或者在自己用户目录下建个目录使用即可)
参考资料:
portability - MySql portable version - Stack Overflow
(6条消息) mysql 数据目录 datadir 设置成相对目录 (window环境)_爱上一条鱼的专栏-CSDN博客