无需在Windows上安装即可运行/启动MySQL

时间:2017-02-04 20:54:20

标签: mysql windows command-line

通常,我会为Windows下载MySQL msi安装程序并安装然后在安装步骤中配置和创建数据库。然后使用任何应用程序/语言连接,然后从那里开始。

然而
我想在不使用msi安装程序的情况下达到相同的结果,而是想使用提供的MySQL存档。 所以,

  • 我已下载(MySQL社区服务器=> Windows(x86,64位), ZIP存档 mysql-5.7.17-winx64.zip
  • 提取档案。

我想知道如何通过Windows命令行使用下载的服务器文件创建和管理数据库。

大多数搜索尝试产生的结果要么假设msi安装已经发生,要么对于仍在尝试学习MySQL基础知识的人来说过于复杂。

TL; DR:我如何通过命令行在Windows上使用MySQL服务器归档文件创建和管理数据库?

3 个答案:

答案 0 :(得分:28)

感谢Ryan Vincent' comment。我能够按照MySQL的参考文档中的步骤进行操作(出于某种原因,我在询问此问题之前的搜索从未找到过。)

<强> Reference Documentation : 2.3.5 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive

简化步骤

  1. 下载MySQL Community Server 5.7.17 Windows (x86, 64-bit), ZIP Archive
  2. 将下载的MySQL服务器存档解压缩到MySQL服务器文件的所需位置(例如:D:\mysql\mysql-5.7.17-winx64
  3. 为MySQL的数据库数据文件创建一个目录(例如:D:\mysql\mydb
  4. 为MySQL的数据库日志记录创建目录(例如D:\mysql\logs
  5. 创建MySQL选项文件(示例位置:D:\mysql\config.ini

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # set basedir to your installation path
    basedir = "D:\\mysql\\mysql-5.7.17-winx64"
    # set datadir to the location of your data directory
    datadir = "D:\\mysql\\mydb"
    # The port number to use when listening for TCP/IP connections. On Unix and Unix-like systems, the port number must be
    # 1024 or higher unless the server is started by the root system user.
    port = "55555"
    # Log errors and startup messages to this file.
    log-error = "D:\\mysql\\logs\\error_log.err"
    
    [mysqladmin]
    
    user = "root"
    port = "55555"
    
    • 所选端口为55555
    • [mysqld]分组与mysqld.exe相关的选项,当mysql.exe读取此配置文件时将使用该选项。
    • [mysqladmin]分组与mysqladmin.exe相关的选项,当mysqladmin.exe读取此配置文件时将使用该选项。
  6. 使用Windows批处理文件/命令提示符初始化MySQL数据库文件

    "D:\mysql\mysql-5.7.17-winx64\bin\mysqld.exe" --defaults-file="D:\\mysql\\config.ini" --initialize-insecure --console
    
    • 这将在配置文件中指定的位置创建数据库文件。
    • 它将拥有没有密码的root用户
    • 错误消息将打印在当前控制台窗口中。
  7. 创建批处理文件以启动MySQL数据库服务器

    "D:\mysql\mysql-5.7.17-winx64\bin\mysqld.exe" --defaults-file="D:\\mysql\\config.ini"
    
    • 这将读取配置文件[mysqld]部分/组(D:\mysql\config.ini)并使用其中指定的选项启动MySQL数据库服务器。
  8. 创建批处理文件以关闭MySQL数据库服务器

    "D:\mysql\mysql-5.7.17-winx64\bin\mysqladmin.exe" --defaults-file="D:\\mysql\\config.ini" shutdown
    
    • 这将读取配置文件[mysqladmin]部分/组(D:\mysql\config.ini)并使用其中指定的选项指定并关闭MySQL数据库服务器。
  9. 您现在可以启动数据库并访问它,并在不需要时将其关闭。
  10. <强>声明 这些步骤应该可以帮助您开始使用MySQL数据库,并且无法用于生产。(root用户甚至还没有设置密码)

    资源和更多细节

    1. Reference Documentation : 2.3.5 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive
    2. Reference Documentation : 5.2.6 Using Option Files
    3. Reference Documentation : 5.2.3 Specifying Program Options
    4. Reference Documentation : 6.1.4 Server Command Options
    5. [Additional] Reference Documentation : 5.6 Running Multiple MySQL Instances on One Machine

答案 1 :(得分:5)

除此之外,如果您遇到“mysqld:无法创建或访问MySQL应用程序登录Windows EventLog所需的注册表项。运行具有足够权限的应用程序一次创建密钥,添加密钥手动或关闭该应用程序的日志记录。“错误 - 添加到步骤6,7以下行: 的 - log_syslog = 0

答案 2 :(得分:0)

除了Sero的答案外,如果您在此link之后更改根密码,请使用以下命令通过指定密码来启动,停止和连接服务器

=AVERAGE(A178:A301)

注意:如果仅在命令中指定--password参数而不指定密码,则会在终端提示输入密码。