公司服务器的数据库是 mysql 5.6.27.
我笔记本上有1个mysql 5.1.28-rc-community 和 2个 mysql 8.0.19 服务。
公司的数据库C:\Program files\MySQL56\data 目录下的库 resourcepath文件夹打包 resoucepath.zip , 拿到笔记本,解压到无论是哪个版本data目录,
都看不到表,报错:表不存在 。 我估计是版本不匹配导致。
无奈之下,我只能到服务器上,把公司的 C:\Program files\MySQL56\ bin , lib , share 3文件夹打包 bin.zip (300M左右) 拿到笔记本
为什么不拿data目录呢?因为有200G啊,我只要一个库resourcepath里的数据,而且只要14个表,大概100M吧,数据库里有40个表!
新建目录 E:\mysql56 , 把 bin.zip 解压到此。
新建目录 E:\mysql56\data,把 resoucepath.zip 解压到data。 变成 E:\mysql56\data\resourcepath\ (里面有很多数据库表原始文件 *.frm , *.MYD , *.MYI , *.TRG)
my.ini 复制过来改成 这样以下这样,(注意:默认端口3306 , 3307 ,3308 已经被我之前3个服务占用了)所以,这里我改成3309
[mysqld]
port = 3309
basedir ="E:\mysql56"
datadir ="E:\mysql56\data"
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8mb4
[client]
loose-default-character-set=utf8mb4
default-storage-engine=INNODB
[WinMySQLadmin]
Server = "E:\mysql56\bin\mysqld.exe"
安装.bat
net stop MySQL56
sc delete MySQL56
E:\mysql56\bin\mysqld install MySQL56 --defaults-file="E:\mysql56\my.ini"
net start MySQL56
@pause
至此,鼠标右键 管理员运行 “ 安装.bat ” . 服务是安装成功了,但启动报错. 为什么?
因为 data目录里缺少了mysql 库,到公司服务器的安装目录找到C:\Program files\MySQL56\data\mysql
把 mysql文件夹 打包拿过来放data目录里。
再次 安装.bat , 运行成功。 用SQLyog登陆3309端口 , root , 空密码 , 查看公司的数据库 resourcepath , 能看到了,完美。
总结:mysql本来是绿色的软件,并不需要 安装包来安装,只需要把目标电脑的 安装目录的相应文件
拿到新的电脑里,修改my.ini 用上面的安装命令就能安装。
注意事项:
低于 MySQL 5.6 版本 要准备 bin , lib , share , 新建data目录 , 必须提前准备 \data\mysql 库才能运行,否则服务启动报错。(以上例子)
在 安装.bat 运行后,自动生成一堆系统必要的文件在data(看下面的列表)。但不包括performance_schema库,此库不需要也能运行。
MySQL 5.7 开始, 要准备 bin , lib, share , 新建data目录 , 不需提前准备mysql库,可用初始化命令自动生成mysql 库 等数据库文件在data里。
(低于5.7不支持此命令) 初始化命令
E:\MySQL8\bin\mysqld --initialize-insecure (我以前安装 8.0.19 , 运行后登陆用root ,参数 -Insecure 是空密码的意思 )
运行后,data里 自动生成 一堆 MySQL 必须的文件和数据库 ,还有,根据 resoucepath 构建了 mysql 的系统表信息
\data\ibdata1
\data\ib_logfile0
\data\performance_schema\ [mysql系统表]
\data\sys\ [mysql系统表]
\data\auto.cnf
\data\mysq.ibd
\data\ *.err