如何在 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 教育版

具体步骤如下:

  1. 先在一台电脑使用 MySQL 的免安装包安装 MySQL,这个过程同上面的教程【在 Windows 中使用免安装包安装 MySQL】类似。为了避免不必要的踩坑,这里还是重新描述一下。

  2. 假设已经按照教程【在 Windows 中使用免安装包安装 MySQL】中的指示下载好了 MySQL 的免安装包。这里以 MySQL 8.0.27 例。

  3. 如果是同一台电脑上安装多个 MySQL,那么是不能设置环境变量的,这会导致冲突,而且也没有必要,因为可以通过完整的绝对路径来运行 MySQL。

  4. 将下载好的 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

  5. 在 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
    

    【踩坑提醒】

      此处 basedirdatadir 的路径中不要使用中文,而且应该使用斜杠 / 来代替反斜杠 \。原因是反斜杠 \ 可能引发转义的问题。比方说,如果路径中含 \test,那么 MySQL 会首先将 \t 解释成制表符。因此,也可以在原来的每个反斜杠 \ 后面再加一个反斜杠 \,这样也能解决转义的问题。

      如果引发了转义的问题,将出现如下报错:

    mysqld: Can't create/write to file 'XXX' (OS errno 2 - No such file or directory)
    

  6. 一般来说,只需要修改上面配置文件 my.ini 中的端口 port、MySQL 安装目录 basedir、MySQL 数据存放路径 datadir

  7. 管理员身份运行 CMD。如果不以管理员身份运行,将会有报错 Install/Remove of the Service Denied!

  8. 以管理员身份运行 CMD 的方法有很多,这里只举一例。

    1. 使用如下命令找到 CMD 的路径,然后右键单击,选择 以管理员身份运行。通常,CMD 的路径位于 C:\Windows\System32\cmd.exe

      where cmd

      D:\>where cmd
      C:\Windows\System32\cmd.exeD:\>
      
    2. 现在,如果成功启动了 CMD 窗口,窗口上应该有 管理员 字样,窗口显示的当前路径为 C:\Windows\system32

    3. 使用如下命令进入 MySQL 所在的磁盘。

      d:

      C:\Windows\system32>d:D:\>
      
    4. 使用如下命令进入 MySQL 安装路径。

      cd mysql-8.0.27-winx64\bin

      D:\>cd mysql-8.0.27-winx64\binD:\mysql-8.0.27-winx64\bin>
      
  9. 现在,应该就在 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>
    
  10. 此时,应该可以在 Windows 中看到刚刚注册的 MySQL 服务。

  11. 上面的配置文件编辑完成之后。使用如下命令初始化 MySQL 目录。

    mysqld --initialize

    D:\mysql-8.0.27-winx64\bin>mysqld --initializeD:\mysql-8.0.27-winx64\bin>
    
  12. 使用命令 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 数据库数据存放目录设置的是否正确

    • 前面配置文件中设置的端口号是否已被占用


  13. 使用命令 mysql -u root -p -Pxxx 进入 MySQL 数据库。其中,xxx 是前面在配置文件中设置的端口号。

    mysql -u root -p -P3306

  14. 此处将会提示输入密码。这个密码是由前面执行命令 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)
    

  15. 初次登录之后需要修改密码。修改密码的命令为: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
    

  16. MySQL 登录成功后,就可以使用 MySQL 语言来对数据库进入控制了。

  17. 在使用完数据库后,就可以考虑退出了。退出 MySQL 的方法是,先使用命令 exit 来退出登录。

    exit

    mysql> exit
    ByeD:\mysql-8.0.27-winx64\bin>
    
  18. 使用命令 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 初始化。)


  19. 退出之后,如果需要再次登录,只需要从前面的命令 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 移植使用

  1. 下面来进行数据库移植。可以选择先在原数据库中创建一些初始数据,以供移植后验证移植成功。这里假设已经完成了这个步骤。下面开始创建另一个 MySQL 服务。这个过程可以在前面那台电脑上进行,也可以在另一台电脑上进行。笔者已经分别进行了验证,均已成功。

  2. 将原电脑的 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 数据库数据存放目录 中的文件,而且在拷贝之后,登录数据库的密码应该是原数据库的密码。


  3. 对目录下的配置文件 my.ini 中的 MySQL 安装目录 basedir、MySQL 数据存放路径 datadir 作相应的修改。配置文件 my.ini 中的端口 port 要改成另一个不会与已有冲突的端口号。


    【踩坑提醒】

      很多人可能想着将 MySQL 数据库数据存放目录 设置成相对目录,这样将 MySQL 安装目录整个进行拷贝移动时也不需要修改配置文件。但实际上,这行不通。配置文件 my.ini 中记载的目录不能是相对路径。

      不过,这不是没有应对的办法,可以在 MySQL 启动前,使用一种脚本代码来将配置文件 my.ini 中的绝对路径设置成正确的值。很多编程语言都可以实现这一点。


  4. 使用管理员身份运行 CMD,并进入 MySQL 命令目录。这里是: E:\mysql-8.0.27-winx64\bin

  5. 输入命令 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 目录,因为已经有了移植之后的数据了。


  6. 使用命令 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>
    
  7. 使用命令 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>
    
  8. 到这一步,就完成了 在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用 的全部步骤。读者可以自行试一下,由于使用了不同的端口号,即便是在同一台电脑上运行这两个 MySQL 也不会也冲突,而且移植之后的数据依旧可以访问。

  9. 可以看出,在创建第二个 MySQL 服务时,只使用了一些 CMD 命令。只要将这些命令提前写入任意的一种脚本语言中,就可以无障碍地实现对移植之后数据库的访问。欢呼吧,少年!

附录

其它 MySQL 命令

查看本 MySQL 数据存放目录

  这需要先登录所需要查询的 MySQL 客户端才行。如果已经登录,输入如下命令即可:

show global variables like "%datadir%";

如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用相关推荐

  1. 如何在windows上搭建mysql_如何在Windows上安装多个MySQL

    [IT168 技术文档]本文以免安装版的mysql(Without installer)为例,对如何在Windows上安装多个MySQL进行讲解. 免安装版的mysql(Without install ...

  2. windows 安装php_如何在Windows上安装PHP

    windows 安装php We've previously shown you how to get a working local installation of Apache on your W ...

  3. java 中window_教你如何在windows上安装Java

    最近够倒霉的,电脑硬盘坏了,重新做了个系统,各种环境全都没了,/(ㄒoㄒ)/~~ 然后我发现自己在重新安装各种环境的时候,有些东西竟然还需要去查,所以决定把这些环境的配置都写成博客记录下来. 今天就教 ...

  4. mongodb卸载_如何在Windows上安装MongoDB,启动,卸载

    mongodb卸载 Today we will learn how to install MongoDB on Windows. Most of us use Windows for our pers ...

  5. 如何在 Windows 上安装 ONLYOFFICE 文档 v7.2

    通过阅读本文,了解如何在Windows上安装ONLYOFFICE文档v7.2. 引言 使用社区版,您可以在本地服务器上安装 ONLYOFFICE 文档,并将在线编辑器与 ONLYOFFICE 协作平台 ...

  6. 如何在windows上安装虚拟机

    如何在windows上安装虚拟机 1.以win10为例子 2.下载虚拟机安装包 3.密钥激活 1.以win10为例子 2.下载虚拟机安装包 链接: https://my.vmware.com/web/ ...

  7. 如何在 Windows 上安装 ONLYOFFICE 文档 v7.3

    通过阅读本文,了解如何在 Windows 上安装 ONLYOFFICE 文档 v7.3. ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个在线办公套件,包括文本文档.电子表格和演示文 ...

  8. python联想_联想电脑python安装教程_如何在windows上安装python

    如何在windows上安装python 方法如下: 首根据Windows版本(64位32位)从Python的官方网站下载Python 3.5的64装程序或32位安装程序. 然后,运行下载的EXE安装包 ...

  9. 如何在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 ...

最新文章

  1. 解耦的故事(一)-tmfc的开关(转)
  2. 第7集 构造函数中抛出的异常
  3. ZYNQ中断示例修改
  4. 【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名
  5. 任意文件读取及删除漏洞
  6. windows 下安装rabbitmq
  7. 人工智能实战_第八次作业_手写数学式子识别_廖盈嘉
  8. 图解JVM内存三大核心区域及其JVM内存案例实战剖析
  9. 董明珠人设崩塌了吗?
  10. 由世纪互联运营的 Windows Azure 现已在中国正式发布
  11. 二十六、Jcreator使用初步
  12. php.ini gd_php开启GD库实现方法
  13. 运筹学实验_指派问题
  14. P1262 间谍网络+Trajan 缩点(有向图)
  15. chm 已取消到该网页的导航,打不开
  16. 写给海淘新手的 转运选择 攻略(2014最新版,10月13日更新)--转自什么值得买
  17. 数据提取-数据提取软件
  18. mysql使用()文件中的配置参数_MySQL使用( )文件中的配置参数。 答案:my.ini
  19. 深圳首个“别墅”旧改项目规划出炉:超45万㎡!华侨城操盘
  20. C++的运算符重载http://blog.csdn.net/zgl_dm/article/details/1767201

热门文章

  1. 【Spring学习】Spring的AOP模块应用详解
  2. Python学习笔记__4.1章 高阶函数
  3. codeforces VK Cup 2018 - Wild-card Round 1 (unofficial unrated mirror)
  4. Ubuntu bitnami gitlab 安装
  5. 进行SEPM的灾难恢复时导入数据库后,Symantec Endpoint Protection Manager(SEPM)无法登陆...
  6. postgresql数据库备份与还原
  7. php 获取网卡mac
  8. android Ant批打包学习(零)--基础知识
  9. mac iTunes启动失败,声称iTunes文件夹被锁定
  10. 矩形波的傅里叶变换_冲激信号、门信号、方波、矩形波的傅里叶变换总结