如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用
如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用
- 初次安装
- MySQL 移植使用
- 附录
- 其它 MySQL 命令
- 查看本 MySQL 数据存放目录
MySQL 的各种其它安装方法:
在 Winodws 中使用安装包安装 MySQL:https://blog.csdn.net/wangpaiblog/article/details/112000033
在 Windows 中使用免安装包安装 MySQL:https://blog.csdn.net/wangpaiblog/article/details/121571927
在 Linux 中安装 MySQL:https://blog.csdn.net/wangpaiblog/article/details/120259448
实现了在 Windows 上安装多个 MySQL、MySQL 跨电脑移植使用的标准是,如果在一个 Windows 上安装了一个 MySQL,然后将此 MySQL 数据拷贝到第二台没有安装过 MySQL 的 Windows 上,第二台 Windows 可以无附加条件地通过一定的方法来访问此 MySQL 数据库,且数据库中的数据没有损失。达到了上述的标准就认为实现了 MySQL 的跨电脑移植使用。
MySQL 可以实现这样的技术。具体来说,如果可以将一台 Windows 上的数据库拷贝到第二台电脑上,第二台电脑只需要重新注册 MySQL 服务和修改配置文件中关于 MySQL 的安装与数据路径即可使用原先的数据。
【实现原理】
从本质上来说,MySQL 不需要安装,只是需要在操作系统中注册 MySQL 服务。原因是,MySQL 的服务模块和其它应用的一样,是一种在后台无限循环静默运行的程序。它作为守护进程,必须要事先由操作系统将其启动,其它 MySQL 组件才能得以运行。只要它启动之后,其它使用 MySQL 的进程就可以自行启动 MySQL 客户进程来实现对 MySQL 数据库的访问。
初次安装
笔者的环境:
MySQL 8.0.27
Windows 10 教育版
具体步骤如下:
先在一台电脑使用 MySQL 的免安装包安装 MySQL,这个过程同上面的教程【在 Windows 中使用免安装包安装 MySQL】类似。为了避免不必要的踩坑,这里还是重新描述一下。
假设已经按照教程【在 Windows 中使用免安装包安装 MySQL】中的指示下载好了 MySQL 的免安装包。这里以
MySQL 8.0.27
例。如果是同一台电脑上安装多个 MySQL,那么是不能设置环境变量的,这会导致冲突,而且也没有必要,因为可以通过完整的绝对路径来运行 MySQL。
将下载好的
mysql-8.0.27-winx64.zip
解压缩,得到 MySQL 安装目录。安装目录应该是一种含文件夹 bin 的目录。在笔者的 Windows,各路径如下:MySQL 安装目录:
D:\mysql-8.0.27-winx64
MySQL 命令目录:
D:\mysql-8.0.27-winx64\bin
MySQL 数据库数据存放目录:
D:\mysql-8.0.27-winx64\data
MySQL 端口号:
3306
在 MySQL 的目录下创建一个 MySQL 配置文件
my.ini
。此配置文件是用来规定 MySQL 服务进程的参数信息。[mysql] # 设置 MySQL 客户端默认字符集 default-character-set=utf8 [mysqld] #设置 MySQL 端口号 port = 3306 #skip-grant-tables # 设置 MySQL 的安装目录 basedir=D:\mysql-8.0.27-winx64\ # 设置 MySQL 数据库的数据的存放目录 datadir=D:\mysql-8.0.27-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB[client] #default_character_set=utf8
【踩坑提醒】
此处
basedir
、datadir
的路径中不要使用中文,而且应该使用斜杠/
来代替反斜杠\
。原因是反斜杠\
可能引发转义的问题。比方说,如果路径中含\test
,那么 MySQL 会首先将\t
解释成制表符。因此,也可以在原来的每个反斜杠\
后面再加一个反斜杠\
,这样也能解决转义的问题。如果引发了转义的问题,将出现如下报错:
mysqld: Can't create/write to file 'XXX' (OS errno 2 - No such file or directory)
一般来说,只需要修改上面配置文件
my.ini
中的端口port
、MySQL 安装目录basedir
、MySQL 数据存放路径datadir
。以管理员身份运行 CMD。如果不以管理员身份运行,将会有报错
Install/Remove of the Service Denied!
。以管理员身份运行 CMD 的方法有很多,这里只举一例。
使用如下命令找到 CMD 的路径,然后右键单击,选择
以管理员身份运行
。通常,CMD 的路径位于C:\Windows\System32\cmd.exe
。where cmd
D:\>where cmd C:\Windows\System32\cmd.exeD:\>
现在,如果成功启动了 CMD 窗口,窗口上应该有
管理员
字样,窗口显示的当前路径为C:\Windows\system32
。使用如下命令进入 MySQL 所在的磁盘。
d:
C:\Windows\system32>d:D:\>
使用如下命令进入 MySQL 安装路径。
cd mysql-8.0.27-winx64\bin
D:\>cd mysql-8.0.27-winx64\binD:\mysql-8.0.27-winx64\bin>
现在,应该就在 CMD 中以管理员身份进入到了 MySQL 的命令目录。输入命令
mysqld install xxx
在操作系统中注册 MySQL 服务,其中,xxx
可以任意取名。mysqld install mysql01
D:\mysql-8.0.27-winx64\bin>mysqld install mysql01 Service successfully installed.D:\mysql-8.0.27-winx64\bin>
此时,应该可以在 Windows 中看到刚刚注册的 MySQL 服务。
上面的配置文件编辑完成之后。使用如下命令初始化 MySQL 目录。
mysqld --initialize
D:\mysql-8.0.27-winx64\bin>mysqld --initializeD:\mysql-8.0.27-winx64\bin>
使用命令
net start xxx
启动 MySQL 服务。其中,xxx
是前面起的 MySQL 服务名。net start mysql01
D:\mysql-8.0.27-winx64\bin>net start mysql01 mysql01 服务正在启动 . mysql01 服务已经启动成功。D:\mysql-8.0.27-winx64\bin>
【踩坑提醒】
如果此处出现
服务无法启动
的情况,请检查:前面配置文件中的 MySQL 安装目录设置的是否正确
前面配置文件中的 MySQL 数据库数据存放目录设置的是否正确
前面配置文件中设置的端口号是否已被占用
使用命令
mysql -u root -p -Pxxx
进入 MySQL 数据库。其中,xxx
是前面在配置文件中设置的端口号。mysql -u root -p -P3306
此处将会提示输入密码。这个密码是由前面执行命令
mysqld --initialize
时生成的,它在前面设置的数据库数据存放目录
中的文件计算机名.err
中。具体方法是用记事本打开该文件,找到带 password 的一行A temporary password is generated for root@localhost:
。此文字后面的就是生成的随机密码(此密码不带空格)。输入密码后即可进入数据库。D:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
【踩坑提醒】
如果上面的命令省略参数
-Pxxx
,则相当于提供的是 MySQL 默认端口号 3306。如果这与前面的配置文件中设置的不一致,这将引发如下报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
初次登录之后需要修改密码。修改密码的命令为:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
。其中,新密码
要被换成自己设置的密码,且新密码
要位于单引号之中。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld'; Query OK, 0 rows affected (0.02 sec)mysql>
【踩坑提醒】
在 MySQL 5.7 及以前的版本,修改密码的命令是
set password for root@localhost =password(‘新密码’);
。如果在 MySQL 8.0 中使用该命令,会发生如下报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password(‘helloworld’)' at line 1
MySQL 登录成功后,就可以使用 MySQL 语言来对数据库进入控制了。
在使用完数据库后,就可以考虑退出了。退出 MySQL 的方法是,先使用命令 exit 来退出登录。
exit
mysql> exit ByeD:\mysql-8.0.27-winx64\bin>
使用命令
net stop xxx
退出 MySQL 服务。其中,xxx
是前面起的 MySQL 服务名。net stop mysql01
D:\mysql-8.0.27-winx64\bin>net stop mysql01 mysql01 服务正在停止. mysql01 服务已成功停止。D:\mysql-8.0.27-winx64\bin>
【提示】
如果读者非常爱干净,可以在此处将前面注册的 MySQL 服务也一并移除。使用命令
sc delete xxx
即可。其中,xxx
是前面起的 MySQL 服务名。sc delete xxx
D:\mysql-8.0.27-winx64\bin>sc delete mysql01 [SC] DeleteService 成功D:\mysql-8.0.27-winx64\bin>
但是,这样做了之后,下次再登录时,需要额外先执行前面的命令
mysqld install xxx
再次安装 MySQL 服务。(此时只需要注册 MySQL 服务,不需要执行 MySQL 初始化。)退出之后,如果需要再次登录,只需要从前面的命令
net start xxx
开始进行即可。示例如下:D:\mysql-8.0.27-winx64\bin>net start mysql01 mysql01 服务正在启动 . mysql01 服务已经启动成功。D:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
MySQL 移植使用
下面来进行数据库移植。可以选择先在原数据库中创建一些初始数据,以供移植后验证移植成功。这里假设已经完成了这个步骤。下面开始创建另一个 MySQL 服务。这个过程可以在前面那台电脑上进行,也可以在另一台电脑上进行。笔者已经分别进行了验证,均已成功。
将原电脑的 MySQL 安装目录拷贝到另一个任意目录,这里以
E:\
为例。在新 MySQL 服务中,各目录如下- MySQL 安装目录:
E:\mysql-8.0.27-winx64
- MySQL 命令目录:
E:\mysql-8.0.27-winx64\bin
- MySQL 数据库数据存放目录:
E:\mysql-8.0.27-winx64\data
- MySQL 端口号:
3402
【提示】
准确地说,拷贝的时候只需要拷贝
MySQL 数据库数据存放目录
中的文件,而且在拷贝之后,登录数据库的密码应该是原数据库的密码。- MySQL 安装目录:
对目录下的配置文件
my.ini
中的 MySQL 安装目录basedir
、MySQL 数据存放路径datadir
作相应的修改。配置文件my.ini
中的端口port
要改成另一个不会与已有冲突的端口号。
【踩坑提醒】
很多人可能想着将
MySQL 数据库数据存放目录
设置成相对目录,这样将 MySQL 安装目录整个进行拷贝移动时也不需要修改配置文件。但实际上,这行不通。配置文件my.ini
中记载的目录不能是相对路径。不过,这不是没有应对的办法,可以在 MySQL 启动前,使用一种脚本代码来将配置文件
my.ini
中的绝对路径设置成正确的值。很多编程语言都可以实现这一点。使用管理员身份运行 CMD,并进入
MySQL 命令目录
。这里是:E:\mysql-8.0.27-winx64\bin
。输入命令
mysqld install xxx
在操作系统中注册 MySQL 服务,其中,xxx
可以任意取名。mysqld install mysql02
E:\mysql-8.0.27-winx64\bin>mysqld install mysql02 Service successfully installed.E:\mysql-8.0.27-winx64\bin>
【注意】
此处不需要再使用命令
mysqld --initialize
来初始化 MySQL 目录,因为已经有了移植之后的数据了。使用命令
net start xxx
启动 MySQL 服务。其中,xxx
是前面起的 MySQL 服务名。net start mysql02
E:\mysql-8.0.27-winx64\bin>net start mysql02 mysql02 服务正在启动 ... mysql02 服务已经启动成功。E:\mysql-8.0.27-winx64\bin>
使用命令
mysql -u root -p -Pxxx
进入 MySQL 数据库。其中,xxx
是前面在配置文件中设置的端口号。此处应该会提示输入密码。如果移植是成功的,此密码应该是移植前自设的密码。mysql -u root -p -P3402
E:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3402 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
到这一步,就完成了
在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用
的全部步骤。读者可以自行试一下,由于使用了不同的端口号,即便是在同一台电脑上运行这两个 MySQL 也不会也冲突,而且移植之后的数据依旧可以访问。可以看出,在创建第二个 MySQL 服务时,只使用了一些 CMD 命令。只要将这些命令提前写入任意的一种脚本语言中,就可以无障碍地实现对移植之后数据库的访问。欢呼吧,少年!
附录
其它 MySQL 命令
查看本 MySQL 数据存放目录
这需要先登录所需要查询的 MySQL 客户端才行。如果已经登录,输入如下命令即可:
show global variables like "%datadir%";
如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用相关推荐
- 如何在windows上搭建mysql_如何在Windows上安装多个MySQL
[IT168 技术文档]本文以免安装版的mysql(Without installer)为例,对如何在Windows上安装多个MySQL进行讲解. 免安装版的mysql(Without install ...
- windows 安装php_如何在Windows上安装PHP
windows 安装php We've previously shown you how to get a working local installation of Apache on your W ...
- java 中window_教你如何在windows上安装Java
最近够倒霉的,电脑硬盘坏了,重新做了个系统,各种环境全都没了,/(ㄒoㄒ)/~~ 然后我发现自己在重新安装各种环境的时候,有些东西竟然还需要去查,所以决定把这些环境的配置都写成博客记录下来. 今天就教 ...
- mongodb卸载_如何在Windows上安装MongoDB,启动,卸载
mongodb卸载 Today we will learn how to install MongoDB on Windows. Most of us use Windows for our pers ...
- 如何在 Windows 上安装 ONLYOFFICE 文档 v7.2
通过阅读本文,了解如何在Windows上安装ONLYOFFICE文档v7.2. 引言 使用社区版,您可以在本地服务器上安装 ONLYOFFICE 文档,并将在线编辑器与 ONLYOFFICE 协作平台 ...
- 如何在windows上安装虚拟机
如何在windows上安装虚拟机 1.以win10为例子 2.下载虚拟机安装包 3.密钥激活 1.以win10为例子 2.下载虚拟机安装包 链接: https://my.vmware.com/web/ ...
- 如何在 Windows 上安装 ONLYOFFICE 文档 v7.3
通过阅读本文,了解如何在 Windows 上安装 ONLYOFFICE 文档 v7.3. ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个在线办公套件,包括文本文档.电子表格和演示文 ...
- python联想_联想电脑python安装教程_如何在windows上安装python
如何在windows上安装python 方法如下: 首根据Windows版本(64位32位)从Python的官方网站下载Python 3.5的64装程序或32位安装程序. 然后,运行下载的EXE安装包 ...
- 如何在Windows上安装Angular:Angular CLI,Node.js和构建工具指南
In this tutorial, we'll learn how to install Angular CLI in Windows and use it to create an Angular ...
最新文章
- 解耦的故事(一)-tmfc的开关(转)
- 第7集 构造函数中抛出的异常
- ZYNQ中断示例修改
- 【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名
- 任意文件读取及删除漏洞
- windows 下安装rabbitmq
- 人工智能实战_第八次作业_手写数学式子识别_廖盈嘉
- 图解JVM内存三大核心区域及其JVM内存案例实战剖析
- 董明珠人设崩塌了吗?
- 由世纪互联运营的 Windows Azure 现已在中国正式发布
- 二十六、Jcreator使用初步
- php.ini gd_php开启GD库实现方法
- 运筹学实验_指派问题
- P1262 间谍网络+Trajan 缩点(有向图)
- chm 已取消到该网页的导航,打不开
- 写给海淘新手的 转运选择 攻略(2014最新版,10月13日更新)--转自什么值得买
- 数据提取-数据提取软件
- mysql使用()文件中的配置参数_MySQL使用( )文件中的配置参数。 答案:my.ini
- 深圳首个“别墅”旧改项目规划出炉:超45万㎡!华侨城操盘
- C++的运算符重载http://blog.csdn.net/zgl_dm/article/details/1767201
热门文章
- 【Spring学习】Spring的AOP模块应用详解
- Python学习笔记__4.1章 高阶函数
- codeforces VK Cup 2018 - Wild-card Round 1 (unofficial unrated mirror)
- Ubuntu bitnami gitlab 安装
- 进行SEPM的灾难恢复时导入数据库后,Symantec Endpoint Protection Manager(SEPM)无法登陆...
- postgresql数据库备份与还原
- php 获取网卡mac
- android Ant批打包学习(零)--基础知识
- mac iTunes启动失败,声称iTunes文件夹被锁定
- 矩形波的傅里叶变换_冲激信号、门信号、方波、矩形波的傅里叶变换总结