You can build MySQL on Windows by using a combination of cmake and Microsoft Visual Studio .NET 2003 (7.1), Microsoft Visual Studio 2005 (8.0) or Microsoft Visual C++ 2005 Express Edition. You must have the appropriate Microsoft Platform SDK installed.
To compile from the source code on Windows you must use the
standard source distribution (for example,
mysql-5.1.40.tar.gz
). You
build from the same distribution as used to build MySQL on
Unix, Linux and other platforms. Do not
use the Windows Source distributions as they do not contain
the necessary configuration script and other files.
Follow this procedure to build MySQL:
If you are installing from a packaged source distribution,
create a work directory (for example,
C:\workdir
), and unpack the source
distribution there using WinZip or
another Windows tool that can read
.zip
files. This directory is the
work directory in the following instructions.
Using a command shell, navigate to the work directory and run the following command:
C:\workdir>win\configure.js options
If you have associated the .js
file
extension with an application such as a text editor, then
you may need to use the following command to force
configure.js
to be executed as a
script:
C:\workdir>cscript win\configure.js options
These options are available for
configure.js
:
WITH_INNOBASE_STORAGE_ENGINE
:
Enable the InnoDB
storage engine.
WITH_PARTITION_STORAGE_ENGINE
:
Enable user-defined partitioning.
WITH_ARCHIVE_STORAGE_ENGINE
: Enable
the ARCHIVE
storage engine.
WITH_BLACKHOLE_STORAGE_ENGINE
:
Enable the BLACKHOLE
storage
engine.
WITH_EXAMPLE_STORAGE_ENGINE
: Enable
the EXAMPLE
storage engine.
WITH_FEDERATED_STORAGE_ENGINE
:
Enable the FEDERATED
storage
engine.
WITH_NDBCLUSTER_STORAGE_ENGINE
(experimental): Enable the
NDBCLUSTER
storage engine in the
MySQL server; cause binaries for the MySQL Cluster
management and data node, management client, and other
programs to be built.
This option is supported only in MySQL Cluster NDB 7.0
(NDBCLUSTER
storage
engine versions 6.4.0 and later) using the MySQL
Cluster sources. It cannot be used to enable
clustering support in other MySQL source trees or
distributions.
MYSQL_SERVER_SUFFIX=
:
Server suffix, default none.
suffix
COMPILATION_COMMENT=
:
Server comment, default "Source distribution".
comment
MYSQL_TCP_PORT=
:
Server port, default 3306.
port
DISABLE_GRANT_OPTIONS
: Disables the
--bootstrap
,
--skip-grant-tables
,
and --init-file
options
for mysqld. This option is
available as of MySQL 5.1.15.
For example (type the command on one line):
C:\workdir>win\configure.js WITH_INNOBASE_STORAGE_ENGINE
WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
From the work directory, execute the
win\build-vs8.bat
or
win\build-vs71.bat
file, depending on
the version of Visual Studio you have installed. The
script invokes CMake, which generates the
mysql.sln
solution file.
You can also use
win\build-vs8_x64.bat
to build the
64-bit version of MySQL. However, you cannot build the
64-bit version with Visual Studio Express Edition. You
must use Visual Studio 2005 (8.0) or higher.
From the work directory, open the generated
mysql.sln
file with Visual Studio and
select the proper configuration using the
Configuration menu. The menu provides
Debug,
Release,
RelwithDebInfo,
MinRelInfo options. Then select
Solution >
Build to build the solution.
Remember the configuration that you use in this step. It is important later when you run the test script because that script needs to know which configuration you used.
Test the server. The server built using the preceding
instructions expects that the MySQL base directory and
data directory are C:\mysql
and
C:\mysql\data
by default. If you want
to test your server using the source tree root directory
and its data directory as the base directory and data
directory, you need to tell the server their path names.
You can either do this on the command line with the
--basedir
and
--datadir
options, or by
placing appropriate options in an option file. (See
Section 4.2.3.3, “Using Option Files”.) If you have an existing
data directory elsewhere that you want to use, you can
specify its path name instead.
When the server is running in standalone fashion or as a service based on your configuration, try to connect to it from the mysql interactive command-line utility.
You can also run the standard test script,
mysql-test-run.pl. This script is
written in Perl, so you'll need either Cygwin or
ActiveState Perl to run it. You may also need to install
the modules required by the script. To run the test
script, change location into the
mysql-test
directory under the work
directory, set the MTR_VS_CONFIG
environment variable to the configuration you selected
earlier (or use the --vs-config
option), and invoke mysql-test-run.pl.
For example (using Cygwin and the bash
shell):
shell>cd mysql-test
shell>export MTR_VS_CONFIG=debug
shell>./mysql-test-run.pl --force --timer
shell>./mysql-test-run.pl --force --timer --ps-protocol
When you are satisfied that the programs you have built are
working correctly, stop the server. Now you can install the
distribution. One way to do this is to use the
make_win_bin_dist script in the
scripts
directory of the MySQL source
distribution (see Section 4.4.2, “make_win_bin_dist — Package MySQL Distribution as ZIP Archive”). This
is a shell script, so you must have Cygwin installed if you
want to use it. It creates a Zip archive of the built
executables and support files that you can unpack in the
location at which you want to install MySQL.
It is also possible to install MySQL by copying directories and files directly:
Create the directories where you want to install MySQL.
For example, to install into
C:\mysql
, use these commands:
C:\>mkdir C:\mysql
C:\>mkdir C:\mysql\bin
C:\>mkdir C:\mysql\data
C:\>mkdir C:\mysql\share
C:\>mkdir C:\mysql\scripts
If you want to compile other clients and link them to MySQL, you should also create several additional directories:
C:\>mkdir C:\mysql\include
C:\>mkdir C:\mysql\lib
C:\>mkdir C:\mysql\lib\debug
C:\>mkdir C:\mysql\lib\opt
If you want to benchmark MySQL, create this directory:
C:\> mkdir C:\mysql\sql-bench
Benchmarking requires Perl support. See Section 2.15, “Perl Installation Notes”.
From the work directory, copy into the
C:\mysql
directory the following
directories:
C:\>cd \workdir
C:\workdir>copy client_release\*.exe C:\mysql\bin
C:\workdir>copy client_debug\mysqld.exe C:\mysql\bin\mysqld-debug.exe
C:\workdir>xcopy scripts\*.* C:\mysql\scripts /E
C:\workdir>xcopy share\*.* C:\mysql\share /E
If you want to compile other clients and link them to MySQL, you should also copy several libraries and header files:
C:\workdir>copy lib_debug\mysqlclient.lib C:\mysql\lib\debug
C:\workdir>copy lib_debug\libmysql.* C:\mysql\lib\debug
C:\workdir>copy lib_debug\zlib.* C:\mysql\lib\debug
C:\workdir>copy lib_release\mysqlclient.lib C:\mysql\lib\opt
C:\workdir>copy lib_release\libmysql.* C:\mysql\lib\opt
C:\workdir>copy lib_release\zlib.* C:\mysql\lib\opt
C:\workdir>copy include\*.h C:\mysql\include
C:\workdir>copy libmysql\libmysql.def C:\mysql\include
If you want to benchmark MySQL, you should also do this:
C:\workdir> xcopy sql-bench\*.* C:\mysql\bench /E
After installation, set up and start the server in the same way as for binary Windows distributions. See Section 2.3, “Installing MySQL on Windows”.
User Comments
Add your own comment.