创建 配置文件

当 MySQL server 启动时,它会在按照下表列出位置的顺序寻找并读取配置文件:

File Name

Purpose

%PROGRAMDATA%\MySQL\MySQL Server 5.7\my.ini, %PROGRAMDATA%\MySQL\MySQL Server 5.7\my.cnf

Global options

%WINDIR%\my.ini, %WINDIR%\my.cnf

Global options

C:\my.ini, C:\my.cnf

Global options

BASEDIR\my.ini, BASEDIR\my.cnf

Global options

defaults-extra-file

The file specified with --defaults-extra-file, if any

%APPDATA%\MySQL\.mylogin.cnf

Login path options

%PROGRAMDATA% 表示为所有用户保存的应用程序数据目录,默认路径为 C:\ProgramData。

%WINDIR% 代表 Windows 目录,通常为 C:\WINDOWS

使用命令:echo %WINDIR% 可以显示 %WINDIR% 环境变量的实际路径。

%APPDATA% 表示应用程序数据目录。使用:echo %APPDATA% 来显示。我的电脑上为:C:\Users\feifeifanye\AppData\Roaming

BASEDIR 表示 MySQL 安装目录,我的电脑是:C:\Apps\MySQL57

初始 MySQL 安装目录里面有一个 my-default.ini 模板文件,复制一份,命名为 my.ini,以此作为默认配置文件。

配置文件可以使用任意一种文本编辑器修改内容,打开文件,添加一个 [mysqld] 节,并指定 basedir 和 datadir 的值

[mysqld]

# set basedir to your installation path

basedir=C:\\Apps\\MySQL57

# set datadir to the location of your data directory

datadir=C:\\APPs\\MySQL57\\data

从 MySQL 5.7.6 之后,Zip 版本的 MySQL 不再包含 data 目录了。为了通过创建 data 目录并填充表来初始化 MySQL 安装,使用 --initialize 或 --initialize-insecure 来初始化 MySQL。

如果想使用不同的 data 目录,那么直接移动整个 data 目录的内容到新位置,然后每次启动 server 时使用 --datadir 选项来指定新的 data 目录。

 初始化数据目录

如果使用压缩包安装 MySQL,则需要使用 mysqld 手动初始化 data 目录。

为了初始化 data 目录,调用 mysqld,并加上 --initialize 或 --initialize-insecure 选项,这个区别在于是否给 'root'@'localhost' 账户生成一个随机密码。

bin\mysqld --initialize

bin\mysqld --initialize-insecure

使用该命令以后,服务器将做一下操作:

  • 服务器检查是否已存在 data 目录
    • 如果没有 data 目录,则创建之
    • 如果已有 data 目录且非空,则服务器产生一条错误信息:"[ERROR] --initialize specified but the data directory exists. Aborting"然后退出。此时应删除该目录重新尝试。
  • data 目录里面,服务器创建 mysql 系统数据库和表,包括 grant 表,server-side 表和 time zone 表。
  • 服务器初始化 system tablespace 和相关数据结构来管理 InnoDB 表。
  • 服务器创建 'root'@'localhost' 超级账户,并根据 --initialize 选项来决定是否创建密码:
    • 使用 --initialize 将创建一个随机密码,并显示一条消息:"[Warning] A temporary password is generate fot root@localhost:iTag$dfdgF"
    • 使用 --initialize-insecure,将不创建密码并显示一条警告消息:"Warning] root@localhost is created with an empty password! Please consider switching off the --initialize-insecure option"
  • 服务器填充 server-side 帮助表(如果其内容 fill_help_tables.sql 文件可用),服务器不会填充 time zone 表。
  • 如果给出了 --init-file 选项指定为一个文件,服务器将执行该文件中的语句。这个选项能够让你执行自定义的启动设置
  • 服务器退出

初始化之后就可以启动 server 了。

  • 启动 server。见下面一节(第一次启动 Server)
  • 连接到 server。如果使用 --initialize 初始化的,那么使用随机密码登录:

    mysql -u root -p

    Enter password: *********

    如果使用 --initialize-insecure 初始化的,那么这样登录:

    mysql -u root --skip-password

  • 连接成功后,设定 root 密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

 第一次启动 Server

如果要测试 server 最好在 DOS 窗口中运行。这样你很容易看到服务器显示的状态信息,如果配置出现问题,相关消息就会显示。可以这样启动:

"...\mysqld" --console

对于一个支持 InnoDB 的 server 来说,启动之后你可能会看到类似的下列信息:

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:

InnoDB: a new database to be created!

InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200

InnoDB: Database physically writes the file full: wait...

InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created

InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280

InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created

InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280

InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created

InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280

InnoDB: Doublewrite buffer not found: creating new

InnoDB: Doublewrite buffer created

InnoDB: creating foreign key constraint system tables

InnoDB: foreign key constraint system tables created

011024 10:58:25 InnoDB: Started

当 server 完成启动,将看到下列信息,表示服务器已经准备好接受客户端的连接了:

mysqld: ready for connections

Version: '5.7.15. socket: '' port:3306

服务器继续输出其他诊断信息,你可以打开另一个命令行窗口来运行客户端程序。

如果忽略 --console 选项,服务器将把诊断信息写入 error log 文件(\data 目录)

 从命令行启动 MySQL

MySQL Server 可以从命令行手动启动。输入如下命令:

mysqld

通过命令停止 MySQL Server

"...\bin\mysqladmin" -u root shutdown

如果 root 账户有密码,那就要 -p 选项,并在提示后输入密码

如果 mysqld 没能启动,在 error log 中查看服务器输出的信息,来找到问题原因。error log 文件是一个 .err 文件,通常在 \data\ 目录下面。此外也可以使用 --console 选项,这样就能在命令行里看到服务器输出的信息(找到问题原因)。最后是使用 --standalone 或者 --debug 选项启动 mysqld,此时,mysqld 将写入一个 log 文件(C:\mysqld.trace),里面包含未能启动的原因。

  把 MySQL 程序目录(通常是 ...\bin\) 添加到 PATH 环境变量

但是同一个机器上有多个 MySQL server 时,就不应添加 MySQL bin 目录到PTAH环境变量了。

 安装 MySQL 作为 Windows 服务

在 Windows 上面推荐的做法是把 MySQL 作为一个 Windows 服务来启动,这样 MySQL 就能随系统启动和关闭了。

安装服务之前,先通过下面的命令关闭已经启动的 server。如果设置了密码,就要加上 -p 参数,然后在提示后输入密码

"...\bin\mysqldadmin" -u root shutdown

安装服务:

"...\bin\mysqld" --install

这个命令并不启动 server。

安装服务时还可以用一些附加的参数:

  • 在 --install 之后指定服务名,默认为 MySQL
  • 当给定服务名,后可跟一个单个配置文件,命令 --default-file=file_name 来指定 Server 启动后读取的配置文件名
  • 在服务名后可指定 --local-service 选项,将使 server 运行在 LocalService Windows 账户之下(具有有限的系统权限)

服务安装后,会随着系统启动和关闭。也可以使用 NET START MySQL 命令来启动,使用 NET STOP MySQL 命令手动关闭

当作为服务运行时,mysqld 访问不了控制台窗口,所以如果 mysqld 没能启动,在 .err 中查看 server 输出的信息来寻找问题原因。

也可以把 MySQL server 安装为手动启动的服务:

"...\bin\mysqld" --install-manual

移除服务

首先停止服务 NET STOP MySQL ,然后用 --remove 选项来移除:

"...\bin\mysqld" --remove

 测试 MySQL 是否安装

执行下面任意一个命令来测试是否 MySQL 工作了:

"..\bin\mysqlshow"

"..\bin\mysqlshow" -u root mysql

"..\bin\mysqladmin" version status proc

"..\bin\mysql" test

参考链接:http://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html

Windows 下 zip 版的 MySQL 的安装的更多相关文章

  1. Windows中压缩版的MySQL的安装、配置

    本次笔记是根据mysql-8.0.13-winx64版本编写: 1.将下载的压缩包解压到自己想放的目录 2.右键计算机 -> 属性 -> 高级系统设置 -> 环境变量 -> 系 ...

  2. CentOS下安装MySQL,Windows下使用Navicat for MySql连接

    安装 查看有没有安装过:          yum list installed mysql*          rpm -qa | grep mysql* 查看有没有安装包:          yu ...

  3. windows下搭建apache+php+mysql

    在windows下,apache和mysql都有自动化安装的程序,本篇则侧重从apache和php版本选择,php线程安全,apache和mysql安装启动服务,工作环境配置这几个方面来阐述windo ...

  4. ubuntu下的apache+php+mysql的安装

    平时我都时在windows下搭配apache+php+mysql环境的,只不过后来听别人说在linux下搭配apache+php+mysql更受欢迎,而且一般公司也是用这样的搭配,所以今天在试着在ub ...

  5. Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装

    Android ROM开发(一)--Windows下Cygwin和Android_Kitchen厨房的安装 很久没有碰到ROM开发了,在很久很久以前也是从ROM起步的,无奈还是一脚踏上了Android ...

  6. windows下编译qt的mysql驱动

    windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\M ...

  7. 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装爬虫框架Scrapy(离线方式和在线方式)(图文详解)

    不多说,直接上干货! 参考博客 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解) 第一步:首先,提示升级下pip 第二步 ...

  8. 全网最全的Windows下Python2 / Python3里正确下载安装用来向微信好友发送消息的itchat库(图文详解)

    不多说,直接上干货! 建议,你用Anaconda2或Anaconda3. 见 全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装用来向微信好友发送消息的itchat库( ...

  9. Windows下IIS+PHP 5.2的安装与配置

    Windows下IIS+PHP 5.2的安装与配置   Windows下PHP的安装虽然简单,但如果不注意方法,仍然会让你头疼.此外,PHP 5.2版本与之前4.x版本也有一些不同,所以有必要记录一下 ...

随机推荐

  1. ASP.NET Core 中文文档 第四章 MVC(3.6.1 )Tag Helpers 介绍

    原文:Introduction to Tag Helpers 作者:Rick Anderson 翻译:刘浩杨 校对:高嵩(Jack) 什么是 Tag Helpers? Tag Helpers 提供了什 ...

  2. 使用F#开发ASP.NET Core应用程序

    .NET Core 里的F# 在.NET Core刚发布时,就已经添加了对F#的支持.但因为当时F#组件还不完整,而一些依赖包并没有放在Nuget上,而是社区自己放到MyGet上,所以在使用dotne ...

  3. IL初步了解

    一.概述: 近来也是在看AOP方面的东西,了解到Emit可以实现.之前对Emit的了解也就是停留在Reflector针对方法反编译出来的部分指令.就用这次机会学习下Emit也用这篇随笔记录下学习的过程 ...

  4. 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体

    注:本文适用.net 2.0+的winform项目 目的: 点击页面中的target="_blank"链接时,弹出新窗体 页面中有window.close()操作时,关闭窗体 上述 ...

  5. dbutils基本使用

    dbutils的查询,主要用到的是query方法,增加,修改和删除都是update方法,update方法就不讲了 只要创建ResultSetHandler接口不同的实现类对象就可以得到想要的查询结果, ...

  6. java变量类型

    一.局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局部变量: 局部变量只在声明它的方 ...

  7. Python VS PHP 基础语法

    这几天在学习Python,鄙人平时学习中为了方便记忆和更好的比较与理解语言二者之间在某些情况的优劣性,所以花了点时间,整理了一下 Python 和 PHP 常用语法的一些区别. 一.大小写 PHP: ...

  8. 简单实用angular.js购物车功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. JS实现文字截取(雾)

    今天在跳板群那里看到一个神奇的样式,效果: 感觉十分神奇,因为一开始以为他是只有一个P元素包着文字然后最后一个自动截取文字,而且最后一行还可以提前截取???这怎么做到的,然后想了一下css怎么做,好像 ...

  10. 【转】最流行的编程语言JavaScript能做什么?

    本文转自互联网! 首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言. 对不起的还有刚刚在4月TIOBE编程语言排行榜上榜的各个语言: 你们都很棒,但是你们都担当不了这个大任. 开 ...