本文同步至 http://www.waylau.com/windows-install-mysql-noinstall-zip/html
在 Windows 环境下,最简单的安装 MySQL 方式天然是使用 MySQL Installer 进行“傻瓜”式点下一步安装便可,能够参见mysql-5.6.13在windows平台下的安装、使用(图解)。本文介绍了另一种使用 noinstall Zip 文件(免安装版)安装 MySQL。mysql
<!-- more -->sql
地址: http://dev.mysql.com/downloads/mysql/shell
本例使用 MySQL 版本为:Windows (x86, 64-bit), ZIP Archive 5.7.10 (mysql-5.7.10-winx64.zip)windows
本例使用的操做系统为:Win7 Sp1 x64服务器
C:\mysql
。 MySQL 的安装向导(MySQL Installer)安装 MySQL 在C:\Program Files\MySQL
。若是您没有在 C:\mysql
安装 MySQL,你必须在启动或者在 option file 文件中指定的安装目录路径。本例安装在C:\Program Files\MySQL
目录。配置文件是用于设置 MySQL 的配置,解压包下有一个 my-default.ini 文件,就是模版。复制该模版从命名为 my.ini,则 MySQL 就会从 my.ini 里读取配置。dom
my.ini 放在 C:\Windows
目录。socket
本例安装目录和数据设置在 (C:\Program Files\MySQL\mysql-5.7.10-winx64
和 D:\mysqlData\data
),配置以下:ide
[mysqld] # set basedir to your installation path basedir = C:/Program Files/MySQL/mysql-5.7.10-winx64 # set datadir to the location of your data directory datadir = D:/mysqlData/data
MySQL 5.7.6 以后,noinstall 安装包并无提供 data 目录,因此要初始化一个 data 目录工具
为了方便使用 MySQL 工具,添加 MySQL bin 目录添加到 PATH 是个不错的选择。
本例将 C:\Program Files\MySQL\mysql-5.7.10-winx64\bin
添加到 PATH,以下:
使用命令行
mysqld --defaults-file=C:\Windows\my.ini --initialize --console
其中 --defaults-file
指向了咱们以前建立的 my.ini 文件。
控制台输出以下:
C:\Users\Administrator>mysqld --defaults-file=C:\Windows\my.ini --initialize --c onsole 2016-01-03T04:38:27.634571Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc umentation for more details). 2016-01-03T04:38:27.634571Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2016-01-03T04:38:27.634571Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s et. 2016-01-03T04:38:29.196573Z 0 [Warning] InnoDB: New log files created, LSN=45790 2016-01-03T04:38:29.576574Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2016-01-03T04:38:29.696574Z 0 [Warning] No existing UUID has been found, so we a ssume that this is the first time that this server has been started. Generating a new UUID: d657df18-b1d3-11e5-b812-00ac86a5db41. 2016-01-03T04:38:29.726574Z 0 [Warning] Gtid table is not ready to be used. Tabl e 'mysql.gtid_executed' cannot be opened. 2016-01-03T04:38:29.736574Z 1 [Note] A temporary password is generated for root@ localhost: m1>X:,<-2Gfl
若无异常,则会在 D:\mysqlData
下建立一个 data 文件夹。 其中,最后那个 m1>X:,<-2Gfl
就是 root 用户的随机生产的密码
执行mysqld
就能启动 MySQL server,或者执行 mysqld --console
能够看到完整的启动信息:
C:\Users\Administrator>mysqld --console 2016-01-03T03:39:47.313272Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc umentation for more details). 2016-01-03T03:39:47.313272Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2016-01-03T03:39:47.313272Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s et. 2016-01-03T03:39:47.313272Z 0 [Warning] Insecure configuration for --secure-file -priv: Current value does not restrict location of generated files. Consider set ting it to a valid, non-empty path. 2016-01-03T03:39:47.313272Z 0 [Note] mysqld (mysqld 5.7.10) starting as process 1420 ... 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows in terlocked functions 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: Uses event mutexes 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: _mm_lfence() and _mm_sfence() are u sed for memory barrier 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: Number of pools: 1 2016-01-03T03:39:47.313272Z 0 [Note] InnoDB: Not using CPU crc32 instructions 2016-01-03T03:39:47.328872Z 0 [Note] InnoDB: Initializing buffer pool, total siz e = 128M, instances = 1, chunk size = 128M 2016-01-03T03:39:47.344472Z 0 [Note] InnoDB: Completed initialization of buffer pool 2016-01-03T03:39:47.453673Z 0 [Note] InnoDB: Highest supported file format is Ba rracuda. 2016-01-03T03:39:47.469273Z 0 [Note] InnoDB: Log scan progressed past the checkp oint lsn 2492338 2016-01-03T03:39:47.469273Z 0 [Note] InnoDB: Doing recovery: scanned up to log s equence number 2492347 2016-01-03T03:39:47.469273Z 0 [Note] InnoDB: Doing recovery: scanned up to log s equence number 2492347 2016-01-03T03:39:47.469273Z 0 [Note] InnoDB: Database was not shutdown normally! 2016-01-03T03:39:47.469273Z 0 [Note] InnoDB: Starting crash recovery. 2016-01-03T03:39:48.186874Z 0 [Note] InnoDB: Removed temporary tablespace data f ile: "ibtmp1" 2016-01-03T03:39:48.186874Z 0 [Note] InnoDB: Creating shared tablespace for temp orary tables 2016-01-03T03:39:48.186874Z 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... 2016-01-03T03:39:48.389674Z 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB. 2016-01-03T03:39:48.389674Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active. 2016-01-03T03:39:48.389674Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active. 2016-01-03T03:39:48.389674Z 0 [Note] InnoDB: Waiting for purge to start 2016-01-03T03:39:48.452074Z 0 [Note] InnoDB: 5.7.10 started; log sequence number 2492347 2016-01-03T03:39:48.452074Z 0 [Note] Plugin 'FEDERATED' is disabled. 2016-01-03T03:39:48.452074Z 0 [Note] InnoDB: Loading buffer pool(s) from D:\mysq lData\data\ib_buffer_pool 2016-01-03T03:39:48.452074Z 0 [Note] InnoDB: not started 2016-01-03T03:39:48.623675Z 0 [Warning] Failed to set up SSL because of the foll owing SSL library error: SSL context is not usable without certificate and priva te key 2016-01-03T03:39:48.623675Z 0 [Note] Server hostname (bind-address): '*'; port: 3306 2016-01-03T03:39:48.623675Z 0 [Note] IPv6 is available. 2016-01-03T03:39:48.623675Z 0 [Note] - '::' resolves to '::'; 2016-01-03T03:39:48.623675Z 0 [Note] Server socket created on IP: '::'. 2016-01-03T03:39:48.810875Z 0 [Note] Event Scheduler: Loaded 0 events 2016-01-03T03:39:48.810875Z 0 [Note] mysqld: ready for connections. Version: '5.7.10' socket: '' port: 3306 MySQL Community Server (GPL) 2016-01-03T03:39:48.904475Z 0 [Note] InnoDB: Buffer pool(s) load completed at 16 0103 11:39:48
关闭执行 mysqladmin -u root shutdown
做为 Windows Service 能够随着操做系统自启动。安装前,先关闭 MySQL server,关闭执行 mysqladmin -u root shutdown
, 再执行 mysqld --install
便可。
若要卸载该服务器,执行mysqld --remove
将 MySQL server 做为 Windows Service 安装以后,能够使用 NET 工具方便启动、关闭 MySQL(指令不区分大小写)。
启动执行:
C:\Users\Administrator>NET START MySQL MySQL 服务正在启动 . MySQL 服务已经启动成功。
关闭执行:
C:\Users\Administrator>NET STOP MySQL MySQL 服务正在中止. MySQL 服务已成功中止。
在 MySQL server启动后,用 root 用户登录
shell> mysql -u root -p Enter password: (enter the random root password here)
执行修改密码的指令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
执行mysqld --defaults-file=C:\Windows\my.ini --initialize
时,出现 下面称为:
C:\Users\Administrator>mysqld --defaults-file=C:\Windows\my.ini --initialize mysqld: Can't create directory 'D:\mysqlData\data\' (Errcode: 2 - No such file o r directory) 2016-01-01T15:08:10.531737Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc umentation for more details). 2016-01-01T15:08:10.531737Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2016-01-01T15:08:10.531737Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s et. 2016-01-01T15:08:10.534737Z 0 [ERROR] Aborting
解决方法:指定的目录不存在,先建立D:\mysqlData
目录,再执行上述命令