Installing MySQL on Microsoft Windows Using a noinstall Zip Archive,在Windows上使用非安装压缩包安装MySQL。当前最新版本为5.7.7(更新2016-4-21)安装步骤如下:
(提示:可以直接跳过本段翻译直接拉到结尾的总结部分,快速部署)
MySQL开源版(社区版)下载:Download MySQL Community Server
-
Extract the archive to the desired install directory,解压安装包
-
Create an option file,创建一个配置文件
-
Choose a MySQL server type,选择一个MySQL服务类型
-
Initializing the Data Directory,初始化数据目录(对于5.7.7)
-
Start the MySQL server,启动MySQL服务
-
Secure the default user accounts,安全化默认用户账户
1.1.Extracting the Install Archive,解压安装包
To install MySQL manually, do the following:
要手动安装MySQL,按如下步骤:
-
在开始升级之前,如果你想要从之前的版本升级请参考官方文档“Upgrading MySQL on Windows”。
-
请确保你是作为拥有管理员权限身份登录Windows.
-
选择一个安装目录。通常,MySQL服务被安装到C:\mysql目录. MySQL 安装向导则会安装到C:\Program Files\MySQL. 如果你没有把MySQL安装到 C:\mysql, 你必须在安装过程中或在配置文件(Option File)中指定安装目录的路径. 详情请参考,“Creating an Option File”.
注意: MySQL Installer 将MySQL安装在 C:\Program Files\MySQL.
- 解压安装包到你选择的安装目录下。
1.2.Create an option file,创建一个配置文件(可选)
当你运行服务时,如果你需要指定启动参数(startup options),那么你可以在命令行中指定它们或者把它们放在一个配置文件(option file)中。对于那些每次服务启动用到的选项参数,你会发现使用一个配置文件来指定你的MySQL配置会很方便。尤其是在如下情形中:
-
installation目录和data数据目录是不同的,默认分别为(C:\Program Files\MySQL\MySQL Server 5.6 and C:\Program Files\MySQL\MySQL Server 5.6\data).
-
你需要优化服务设置,如内存、缓存或InnoDB配置信息。
配置文件可以用任何文本编辑器创建和修改的,如Notepad记事本。例如,如果MySQL安装在E:\mysql 以及data目录在E:\mydata\data,那么你可以创建一个配置文件,其中包含了一个[mysqld] 节点来指定basedir和datadir选项的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
在配置文件中的Windows路径名称要使用(向前)斜杠而不是反斜杠来指定。如果使用反斜杠,需要双反斜杠:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
data目录里面放置的是用于用户运行MySQL的AppData目录。
If you would like to use a data directory in a different location, you should copy the entire contents of the data directory to the new location. For example, if you want to use E:\mydata as the data directory instead, you must do two things:
如果你想要在不同位置使用data目录,你应该拷贝data目录下所有的内容到新的目录位置。例如,你想要使用E:\mydata作为你的data目录,你必须做下面两件事:
- 将data目录下所有内容从默认位置(如C:\Program Files\MySQL\MySQL Server 5.6\data)移至E:\mydata。
- 使用datadir选项来指定新的data目录在每次你启动服务的时候。
1.3.Selecting a MySQL Server Type,选择一个MySQL服务类型
在Windows上MySQL5.6的可用的服务类型如下所示:
-
mysqld, Optimized binary with named-pipe support,命名管道支持的优化binary。
-
mysqld-debug,和mysqld一样,但是时以完全调试和自动内存分配检测的方式编译。
之前所有的二进制都是为现代因特尔处理器而优化的,但是他们应该工作在任意的Intel i386类型或者更高低处理器。
发布的每一个服务器版本支持相同的存储引擎集。SHOW ENGINES 语句展示哪个引擎会被给定的服务器所支持。
所有的MySQL 5.6 服务器已经支持对数据库目录的符号链接。
MySQL在所哟的Windows平台上都支持TCP/IP。如果你以 --enabled-named-pipe 选项的方式启动服务的话,Windows上的MySQL服务器也会支持命名管道(named pipes)。有必要明确的使用选项因为一些用户已经在使用命名管道在关闭MySQL服务的时候遇到了问题。默认是使用TCP/IP而不管什么平台,因为在大多数Windows配置中命名管道比TCP/IP更慢。
1.4.Initializing the Data Directory,初始化MySql基础数据(对于5.7,很重要)
对于5.7以后的版本,data目录需要通过此命令进行初始化,否则服务无效,所以此步骤非常重要!!!!!!!
命令行输入其中一个即可:
C:\> bin\mysqld --initialize
C:\> bin\mysqld --initialize-insecure
前者会给root账号生成一个随机密码,密码可以在err文件中查看,后者不设置密码,所以推荐使用后者。
执行完此命令后,会在安装目录下生成一个data目录及必要的数据。
1.5.Start the server for the First Time,第一次启动MySQL服务
本节将给一个关于启动MySQL服务的普通预览。下面的章节将提供更加详细的信息对从命令行或作为Windows服务来启动MySQL。
为了更方便的在命令行输入命令,先配置系统环境变量(如何配置环境变量不在本章节介绍可以百度之)。
-
配置MYSQL_HOME变量为你解压的路径C:\Program Files\MySQL\MySQL Server 5.6
-
在PATH的末尾添加 %MYSQL_HOME%\bin;
这里的信息主要适用于当你安装了非安装版本的MySQL,或者你希望手动配置和测试MySQL而不是用GUI工具。
**注意:**服务将会自动启动在使用MySQL Installer安装后,以及MySQL Notifier GUI也可以在任何时候用来start/stop/restart服务。
在这些章节中的示例都假设MySQL安装在默认的位置C:\Program Files\MySQL\MySQL Server 5.6。如果你将MySQL安装在不同的位置,请调整这些示例的路径名称。
客户端有两个选择。它们可以使用TCP/IP,或者使用命名管道如果服务支持命名管道连接的话。
Windows上的MySQL也支持共享内存的方式连接如果服务以 --shared-memory 选项的方式连接。客户端可以通过共享内存连接,通过使用 --protocol=MEMORY 选项.
测试最好从DOS window命令行提示完成。通过使用这种方式,你可以在window上很容易看到和显示服务的状态信息。如果你的配置有问题,这些信息很容易让你定位及修复任何问题。
要启动服务,输入如下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --console
如果你配置了环境变量,命令如下:
C:\>mysqld --console
对于一个支持InnoDB的服务,你将会看到如下相似的信息当服务启动的时候(路径名和sizes也许不一样):
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
当服务完成启动序列后,你将会看到如下相似的东西,这表明服务已经准备服务于客户端连接:
mysqld: ready for connections
Version: '5.6.28' socket: '' port: 3306
服务继续向控制台写她产生的任何进一步的诊断输出。你可以打开一个新的控制台窗口来运行客户端程序。
如果你忽略 –console 选项, 服务则将诊断输出写到data目录下的error日志(默认C:\Program Files\MySQL\MySQL Server 5.6\data).error日志是以.err为后缀的文件,它可以通过使用 –log-error选项进行设置。
注意: MySQL授权表中的账户初始时时没有密码的。在启动服务后,你应该为它们设置密码,通过章节“Securing the Initial MySQL Accounts”的介绍。
1.6.Starting MySQL from the Windows Command Line,从Windows命令行启动MySQL
MySQL服务可以手动从命令行启动。这可以在任何的Windows版本中完成。
**注意:**MySQL Notifier GUI 也可以用来start/stop/restart MySQL服务。
To start the mysqld server from the command line, you should start a console window (or “DOS window”) and enter this command:
要从命令行启动mysqld服务,你应该开启一个控制台窗口(或DOS窗口),然后输入命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
路径名需要根据你的安装路径而更改,或者如果配置了环境变量,只要输入
C:\> mysqld
如果要关闭服务,则需要另外开一个新的命令行窗口,输入如下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" --console
或配置了环境变量,如下
C:\>mysqladmin -u root shutdown
注意:
如果MySQL root用户账户有密码,你需要使用 -p option调用mysqladmin以及当提示需要密码时提供密码。
命令行调用MySQL管理工具mysqladmin来连接到服务并告诉它关闭服务。该命令以MySQL root用户进行连接,它是MySQL授权系统的默认管理账户。
注意: Windows下的MySQL中的用户授权系统是完全独立于任何登录用户的。
如果mysqld没有启动,检查error日志来看看是否服务有写任何的信息来指出导致问题的原因。默认的,error日志位于C:\Program Files\MySQL\MySQL Server 5.6\data目录。它是以.err为后缀的文件,或者可以通过在 –log-error选项来指定。或者,你可以试着用 –console选项来启动服务;在这种情况下,服务也许可以显示一些有用的信息到屏幕来帮助解决问题。
The last option is to start mysqld with the --standalone and --debug options. In this case, mysqld writes a log file C:\mysqld.trace that should contain the reason why mysqld doesn’t start.
最后一个选项是使用 –standalone及 –debug 选项来启动mysqld。在这种情况下,mysqld写的日志文件C:\mysqld.trace应该包含mysqld没有启动的原因。详情见“The DBUG Package”.
使用 mysqld --verbose --help 来显示所有mysqld支持的选项。
1.7.Customizing the PATH for MySQL Tools,自定义MySQL工具的路径
To make it easier to invoke MySQL programs, you can add the path name of the MySQL bin directory to your Windows system PATH environment variable:
为了更加方便地调用MySQL程序,你可以添加MySQL bin目录的路径名到你的Windows系统PATH环境变量:
-
右击“计算机”图标,选择属性。
-
下一步从系统属性菜单中选择高级(Advanced)标签,然后点击环境变量按钮。
-
在系统变量下,选择路径(Path),然后点击编辑按钮。然后编辑系统变量对话框将会显示。
-
将你的光标移到变量值的文本末尾。然后输入MySQL bin目录的完整路径名(例如C:\Program Files\MySQL\MySQL Server5.6\bin;),注意千万别忘了加分号结尾。当然你也可以先设置MYSQL_HOME变量值为MySQL根目录如(C:\Program Files\MySQL\MySQL Server 5.6),然后在PATH变量值末尾添加 "%MYSQL_HOME%\bin; "。
点击OK按钮关闭每个对话框,现在你就可以在DOS任何的目录下调用任何的MySQL可执行程序通过输入它的名字
而不用调整路径。这包括服务命令,mysql客户端, 及所有的MySQL 命令行工具如mysqladmin和mysqldump.
如果你将运行多个MySQL 服务在同一个机器上的话,那么你不应该添加MySQL bin目录到Windows PATH。
**警告:*你必须要小心翼翼地手动编辑你的系统PATH;意外的删除或修改存在的PATH值的任意部分会让你的系统出故障或甚至导致系统不可用
1.8.Starting MySQL as a Windows Service,作为Windows服务启动MySQL
在Windows中,推荐的运行MySql的方式是作为一个Windows服务来安装它,这样MySQL就可以随系统自动启动及停止。MySQL服务安装为Windows服务也可以通过使用NET命令从命令行控制,或者使用图形化服务工具。通常,要将MySQL安装为Windows服务,你应该使用具有管理员权限的账号登录系统。
注意: MySQL Notifier GUI 也可以用来监视MySQL服务的状态。
服务管理工具(the Windows Service Control Manager)可以在Windows控制面板中找到。为了避免引起冲突,建议关闭服务管理工具在从命令行执行服务安装或移除操作的时候。可以通过 运行–> services.msc来启动服务管理工具。
1.8.1.Installing the service,安装服务
在安装MySQL作为Windows服务之前,如果它正在运行,你应该先停止当前的服务通过使用如下命令:
C:\> mysqladmin -u root shutdown
安装服务作为系统服务,使用如下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --install
或者配置了环境变量如下:
C:\>mysqld --install
服务安装命令不会启动服务。这个将会在之后的章节中讲到。
-
你可以将服务名字跟在 –install 选项后面来立即指定。默认服务名为MySQL。
-
如果服务名给定了,那么它后面就可以跟一个选项文件。按照惯例,这应该是用**–defaults-file=file_name来指定一个选项文件,当服务启动时应该从这个选项文件中读取选项配置。
使用单一选项文件, –defaults-file是可以的但是不推荐的。–defaults-file**更灵活因为它能让你为服务指定多个启动选项通过把这些选项放置在你命名的选项文件中。
对于安装为Windows服务的MySQL服务,下面规则决定了服务所使用的服务名及选项文件:
-
如果服务安装命令没有指定跟在**–install选项后面的服务名或者默认的服务名(MySQL),那么服务使用MySQL作为服务名并从标准的选项文件中的[mysqld] group**中读取选项配置。
-
如果服务安装命令指定了跟在**–install选项后面的服务名,那么服务使用该服务名。它从标准的选项文件中的[mysqld] group中读取选项配置。这让你可以使用[mysqld] group**中的选项配置,这些配置应该被所有MySQL服务所使用,并且该服务名下的option group(选项组)被使用该服务名安装的服务所使用。
-
如果服务安装命令指定了服务名后面跟着的一个 –defaults-file选项,那么服务会以之前描述的相同的方式来读取选项配置,只是它只从指定的命名文件中读取而忽略掉标准的选项配置文件。
作为一个更加复杂的例子,请看如下命令(假设已配置了环境变量):
C:\> mysqld --install MySQL --defaults-file=C:\my-opts.cnf
这里,默认的服务名(MySQL)已经给出在 –install 选项后面。如果没有给出 –defaults-file 选项,服务将会从标准的选项配置文件中读取**[mysqld] group**。然后,由于给出了**–defaults-file** 选项,服务将只从给定名字的选项文件中读取 [mysqld] option group。
**注意:**在Windows中,–install 选项必须在–defaults-file选项的前面,否则mysqld 将会尝试直接启动MySQL服务。
1.8.2.Starting the service,启动服务
一旦MySQL服务安装为Windows服务时,Windows将会自动启动该服务无论Windows何时启动。服务也可以从服务管理工具(Services utility)中立刻启动,或者使用 NET START MYSQL 命令。NET命令不区分大小写。
C:\> NET START MySQL
当作为系统服务运行时,mysqld就不能访问控制台窗口,因此没有信息会显示在那。如果mysqld没有启动,检查error日志看看是否服务有写任何的信息在error文件中来找出导致问题的原因。error日志位于MySQL data目录(如C:\Program Files\MySQL\MySQL Server 5.6\data)。它是以.err为后缀的文件。
当MySQL服务安装为Windows服务,并且服务正在运行时,Windows会停止MySQL服务随着Windows关闭。服务也可以手动停止通过使用服务管理工具(Services utility),NET STOP MySQL命令或者 mysqadmin 关闭命令。
C:\> NET STOP MySQL
如果你不希望在boot过程期间服务自动启动,你也可以选择将服务安装为手动服务,通过使用 –install-manual 选项而不是**–install** 选项。(假设配置了环境变量)
C:\> mysqld --install-manual
1.8.3.Removing the service,移除服务
要移除作为系统服务的MySQL服务,如果它正在运行首先停止它通过执行 NET STOP MySQL命令,然后使用 --remove选项来移除它。
mysqld --remove
如果mysqld没有作为系统服务运行,你可以从命令行启动它。
##1.9.Testing The MySQL Installation,测试MySQL安装
You can test whether the MySQL server is working by executing any of the following commands:
你可以测试MySQL是否工作通过执行如下命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqlshow"
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqlshow" -u root mysql
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" version status proc
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql" test
如果mysqld对来自于客户端程序的TCP/IP连接响应缓慢,那有可能是你的DNS有问题,使用 –skip-name-resolve选项启动mysqld并在MySQL授权表的Host列中只启用localhost和IP地址。
你可以强制MySQL客户端使用命名管道连接而不是TCP/IP通过制定 –pipe或 –protocol=PIPE选项,或者通过制定 . (点) 作为主机名。使用**–socket** 选项来指定管道名如果你不想使用默认的管道名。
If you have set a password for the root account, deleted the anonymous account, or created a new user account, then to connect to the MySQL server you must use the appropriate -u and -p options with the commands shown previously. See Section 4.2.2, “Connecting to the MySQL Server”.
如果你已经为root账号设置了密码,删除了匿名账户,或者创建了新的用户账户,那么连接MySQL服务时你必须在命令中使用 -u 及 -p 选项。
总结:
安装目录下的bin目录下都是些可执行的命令文件,其中mysqld为mysql服务端进程,mysql为客户端进程。mysqld的d为daemon的缩写(守护/后台进程)。
1.配置环境变量
MYSQL_HOME = C:\Program Files\MySQL\MySQL Server 5.6
Path = %MYSQL_HOME%\bin;
在MYSQL_HOME目录下创建一个my.ini文件,文件内容参考前文。
2.初始化数据目录 data,输入如下命令行(此时root未设置密码)
mysqld --initialize-insecure
》root用户现在没有密码,希望的密码修改为123456,那么命令是:
mysqladmin -u root password 123456
如果root现在有密码了(123456),那么修改密码为abcdef的命令是:
mysqladmin -u root -p password abcdef
注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功
3.查看是否已安装成功
mysqld --console
4.关闭服务
mysqladmin -u root shutdown
5.安装为系统服务(可选),先关闭服务
mysqld --install
需要cd到mysql的安装目录,简单执行:mysqld -install
(默认名称MySQL,配置文件为当前cd到的目录下的my.ini文件)
或者指定配置文件(推荐,否则mysql GUI工具会找不到配置文件)
mysqld -install MySQL --defaults-file="D:\software\mysql\my-default.ini"
默认监听3306端口,若想让服务监听其他端口,可以如下:
mysqld --install -P3307
移除服务
mysqld --remove
//启动、停止
net start/stop mysql
6.连接服务
shell> mysql -h host -u user -p
Enter password: ********
如果同一台机器
shell> mysql -u user -p
7.客户端断开连接
mysql> QUIT
mysql> exit
mysql> \q
8.常用查询
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> SELECT SIN(PI()/4), (4+1)*5;
mysql> SELECT VERSION(); SELECT NOW();
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
mysql> SHOW DATABASES;
mysql> USE test;
mysql> SHOW TABLES;
mysql> DESCRIBE pet;
9.my.ini文件内容示例
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
character-set-server=utf8
max_allowed_packet = 500M
#interactive_timeout=28800000
#wait_timeout=28800000
# 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 = E:\\Soft\\mysql
datadir = E:\\Soft\\mysql\\data
# 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
9.创建数据库
mysql>CREATE DATABASE IF NOT EXISTS test_db;
或者
mysql> CREATE DATABASE IF NOT EXISTS test_db
-> DEFAULT CHARACTER SET utf8;
10.创建用户
命令:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
11.给用户授权
命令:GRANT privileges ON databasename.tablename TO ‘username’@‘host’
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO ‘username’@‘host’ WITH GRANT OPTION;
GRANT ALL ON *.* TO 'pig'@'%' WITH GRANT OPTION;
原文链接地址:Installing MySQL on Microsoft Windows Using a noinstall Zip Archive