[+/-]
This section does not apply to MySQL Enterprise Server users.
These instructions describe how to build binaries from source for MySQL 5.0 on Windows. Instructions are provided for building binaries from a standard source distribution or from the Bazaar tree that contains the latest development source.
The instructions here are strictly for users who want to test MySQL on Microsoft Windows from the latest source distribution or from the Bazaar tree. For production use, MySQL AB does not advise using a MySQL server built by yourself from source. Normally, it is best to use precompiled binary distributions of MySQL that are built specifically for optimal performance on Windows by MySQL AB. Instructions for installing binary distributions are available in Section 2.4.8, “Installing MySQL on Windows”.
To build MySQL on Windows from source, you must satisfy the following system, compiler, and resource requirements:
Windows 2000, Windows XP, or newer version. Windows Vista is not supported until Microsoft certifies Visual Studio 2005 on Vista.
To build from the standard source distribution, you will
need CMake, which can be downloaded from
http://www.cmake.org. After installing,
modify your path to include the cmake
binary.
Microsoft Visual C++ 2005 Express Edition, Visual Studio .Net 2003 (7.1), or Visual Studio 2005 (8.0) compiler system.
If you are using Visual C++ 2005 Express Edition, you must also install an appropriate Platform SDK. More information and links to downloads for various Windows platforms is available from http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb/.
If you are compiling from a Bazaar tree or making changes to
the parser, you need bison for Windows,
which can be downloaded from
http://gnuwin32.sourceforge.net/packages/bison.htm.
Download the package labeled “Complete package,
excluding sources”. After installing the package,
modify your path to include the bison
binary and ensure that this binary is accessible from Visual
Studio.
Cygwin might be necessary if you want to run the test script or package the compiled binaries and support files into a Zip archive. (Cygwin is needed only to test or package the distribution, not to build it.) Cygwin is available from http://cygwin.com.
3GB to 5GB of disk space.
The exact system requirements can be found here: http://msdn.microsoft.com/vstudio/Previous/2003/sysreqs/default.aspx and http://msdn.microsoft.com/vstudio/products/sysreqs/default.aspx
There are three solutions available for building from the source code on Windows:
Build from the standard MySQL source distribution. For this you will need CMake and Visual C++ Express Edition or Visual Studio. Using this method you can select the storage engines that are included in your build. To use this method, see Section 2.4.15.6.1, “Building MySQL from the Standard Source Distribution”.
Build from the MySQL Windows source distribution. The
Windows source distribution includes ready-made Visual
Studio solution files that enable support for all storage
engines (except NDB). To build using
using method you only need Visual C++ Express Edition or
Visual Studio. To use this method, see
Section 2.4.15.6.2, “Building MySQL from a Windows Source Distribution”.
Build directly from the Bazaar source repository. For this
you will need CMake, Visual C++ Express Edition or Visual
Studio, and bison. For this method you
need to create the distribution on a Unix system and then
copy the generated files to your Windows build environment.
To use this method, see
Section 2.4.15.6.5, “Creating a Windows Source Package from the Bazaar Repository”.
If you find something not working as expected, or you have
suggestions about ways to improve the current build process on
Windows, please send a message to the win32
mailing list. See Section 1.6.1, “MySQL Mailing Lists”.
This section does not apply to MySQL Enterprise Server users.
You can build MySQL on Windows by using a combination of cmake and Microsoft Visual Studio .NET 2003 (7.1), Micrsofot 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 usin CMake you must use the
standard source distribution (for example,
mysql-).
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.
5.0.45.tar.gz
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.
If you are installing from a Bazaar tree, the root directory of that tree 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 options
These options are available:
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.
__NT__: Enable support for named
pipes.
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
the --bootstrap,
--skip-grant-tables, and
--init-file options for
mysqld. This option is available as
of MySQL 5.0.36.
For example (type the command on one line):
C:\workdir>win\configure 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 will need
to build MySQL using Visual Studio..
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.
The build process will take some time. Please be patient.
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.
You should test you build before installation. See Section 2.4.15.6.4, “Testing a Windows Source Build”.
To install, use the instructions in Section 2.4.15.6.3, “Installing MySQL from a Source Build on Windows”.
This section does not apply to MySQL Enterprise Server users.
The Windows source distribution includes the necessary
solution file and the vcproj files required
to build each component. Using this method you are not able to
select the storage engines that are included in your build.
VC++ workspace files for MySQL 4.1 and above are compatible with Microsoft Visual Studio 7.1 and tested by MySQL AB staff before each release.
Follow this procedure to build MySQL:
Create a work directory (for example,
C:\workdir).
Unpack the source distribution in the aforementioned
directory using WinZip or another
Windows tool that can read .zip
files.
Start Visual Studio .Net 2003 (7.1).
From the File menu, select Open Solution....
Open the mysql.sln solution you find
in the work directory.
From the Build menu, select Configuration Manager....
In the Active Solution Configuration pop-up menu, select the configuration to use. You likely want to use one of nt (normal server), Max nt (more engines and features), or Debug configuration.
From the Build menu, select Build Solution.
Debug versions of the programs and libraries are placed in
the client_debug and
lib_debug directories. Release
versions of the programs and libraries are placed in the
client_release and
lib_release directories.
You should test you build before installation. See Section 2.4.15.6.4, “Testing a Windows Source Build”.
To install, use the instructions in Section 2.4.15.6.3, “Installing MySQL from a Source Build on Windows”.
When you are satisfied that the program you have built is working correctly, stop the server. Now you can install the distribution. There are two ways to do this, either by using the supplied installation script or by copying the files individually by hand.
To use the script method you must have Cygwin installed as the
script is a Shell script. To execute the installation process,
run 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 to your
desired installation location.
It is also possible to install MySQL by copying directories and files manually:
Create the directories where you want to install MySQL.
For example, to install into
C:\mysql, use these commands:
C:\>mkdir C:\mysqlC:\>mkdir C:\mysql\binC:\>mkdir C:\mysql\dataC:\>mkdir C:\mysql\shareC:\>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\includeC:\>mkdir C:\mysql\libC:\>mkdir C:\mysql\lib\debugC:\>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.4.21, “Perl Installation Notes”.
From the work directory, copy into the
C:\mysql directory the following
directories:
C:\>cd \workdirC:\workdir>copy client_release\*.exe C:\mysql\binC:\workdir>copy client_debug\mysqld.exe C:\mysql\bin\mysqld-debug.exeC:\workdir>xcopy scripts\*.* C:\mysql\scripts /EC:\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\debugC:\workdir>copy lib_debug\libmysql.* C:\mysql\lib\debugC:\workdir>copy lib_debug\zlib.* C:\mysql\lib\debugC:\workdir>copy lib_release\mysqlclient.lib C:\mysql\lib\optC:\workdir>copy lib_release\libmysql.* C:\mysql\lib\optC:\workdir>copy lib_release\zlib.* C:\mysql\lib\optC:\workdir>copy include\*.h C:\mysql\includeC:\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.4.8, “Installing MySQL on Windows”.
You should test the server that you have built from source before using the distribution.
To test the server you need to run the built
mysqld. By default, using the source build
examples, the MySQL base directory and data directory are
C:\mysql and
C:\mysql\data. 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 pathnames. 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.2.2, “Using Option Files”.) If you have an existing data
directory elsewhere that you want to use, you can specify its
pathname 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-testshell>export MTS_VS_CONFIG=debugshell>./mysqltest-run.pl --force --timershell>./mysqltest-run.pl --force --timer --ps-protocol
This section does not apply to MySQL Enterprise Server users.
To create a Windows source package from the current Bazaar source tree, use the instructions here. This procedure must be performed on a system running a Unix or Unix-like operating system because some of the configuration and build steps require tools that work only on Unix. For example, the following procedure is known to work well on Linux.
Copy the Bazaar source tree for MySQL 5.0. For instructions on how to do this, see Section 2.4.15.3, “Installing from the Development Source Tree”.
Configure and build the distribution so that you have a server binary to work with. One way to do this is to run the following command in the top-level directory of your source tree:
shell> ./BUILD/compile-pentium-max
After making sure that the build process completed successfully, run the following utility script from top-level directory of your source tree:
shell> ./scripts/make_win_src_distribution
This script creates a Windows source package to be used on your Windows system. You can supply different options to the script based on your needs. See Section 4.4.3, “make_win_src_distribution — Create Source Distribution for Windows”, for a list of allowable options.
By default, make_win_src_distribution
creates a Zip-format archive with the name
mysql-,
where VERSION-win-src.zipVERSION represents the
version of your MySQL source tree.
Copy or upload the Windows source package that you have just created to your Windows machine. To compile it, use the instructions in Section 2.4.15.6.2, “Building MySQL from a Windows Source Distribution”.

User Comments
If any of you have problems with the following command:
C:\workdir>win\configure options
Opening up your default javascript editor instead of running the script, then you should use this command instead:
c:\workdir>cscript win\configure.js options
I think the docs should be updated with the second command as it will be compatible on all the systems the first command will run on plus many more..
Add your own comment.