Change mysql data directory

Problems with the Windows version of XAMPP, questions, comments, and anything related.

Change mysql data directory

Postby celview » 24. July 2007 03:59

I am sorry if this question have been post. If yes can someone send me the link. If not, my problem is that after installing XAMPP, by default my MYSQL data directory is in the XAMPP folder. I am facing disk space issue soon and will like to migrate the MYSQL data directory ONLY to another disk. Is there a simple way to do this migration? I am only using localhost in Windows. Any help is much appreciated. Thanks.
Posts: 3
Joined: 24. July 2007 03:53

Postby davidspan » 24. July 2007 04:45

XAMPP is one of the topics I write about
Posts: 47
Joined: 25. June 2007 01:59

Postby lyntuan » 24. July 2007 09:32

Use AMPstart to start XAMPP
With AMPstart, you can set XAMPP at one place and PHP code + mySQL data at another place

You can never modify XAMPP, hence forget it :)
Last edited by lyntuan on 26. December 2008 13:42, edited 1 time in total.
Posts: 104
Joined: 08. November 2006 00:21

Postby celview » 25. July 2007 05:05

Hi Lyntuan, thanks for the wonderful solution. But can you somehow describe a bit more how this little tool help my specific need? Tried to read the description in the AMPstart page but can't seems to see how to shift my MYSQL data directory to another location
Posts: 3
Joined: 24. July 2007 03:53

Postby lyntuan » 25. July 2007 05:50

Suppose your XAMPP at D:\xampp, your mySql data at Z:\web\data and your PHP code at Z:\web\mysite (Z is local drive)

Edit AMPstart.ini as followed:



Put AMPstart.exe in D:\xampp, AMPstart.ini in Z:\ (or D:\xampp if Z=D)
Run AMPstart.exe.
That's all

You can modify many options in AMPstart.ini as you need
AMPstart :: Launch a Portable Web Server
Please read Disclaimer section carefully before downloading
Posts: 104
Joined: 08. November 2006 00:21

Postby celview » 02. August 2007 09:36

Doesn't work....=(...My php still read from the original mysql directory...
Posts: 3
Joined: 24. July 2007 03:53

Postby Izzy » 02. August 2007 12:15

celview wrote:Doesn't work....=(...My php still read from the original mysql directory...

Go to directory xampp\mysql\bin\
Look for a file called my usually looks like a shortcut file.
May be called my.cnf

The only way I have found to open this file for editing is to open your text editor and drag the file into a blank page in your text editor.
(Save a copy of the original content in case things go wrong. You can then replace your edits from this original content file).

This is what mine looks like, yours may be slightly different:
Code: Select all
# Example MySQL config file for small systems.
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
# You can copy this file to
# C:/xampp/mysql/bin/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is C:/xampp/mysql/data) or
# ~/.my.cnf to set user-specific options.
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
# password       = your_password
port            = 3306
socket          = mysql

# Here follows entries for some specific programs

# The MySQL server

port            = 3306
socket          = mysql

character-set-server = latin1
collation-server = latin1_general_ci

key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
server-id   = 1

# Uncomment the following if you want to log updates

# Uncomment the following if you are NOT using BDB tables

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:/xampp/mysql/data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/xampp/mysql/data/
#innodb_log_arch_dir = C:/xampp/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#set-variable = innodb_lock_wait_timeout=50


# Remove the next comment character if you are not familiar with SQL

key_buffer = 8M
sort_buffer_size = 8M

key_buffer = 8M
sort_buffer_size = 8M



Look for this part:
# The MySQL server

Change the datadir to your choice.
(No need to change anything else at this stage as you are only after changing the location of your Data Directory).

Click Save

Stop and restart mysql for the changes to take effect.

You may copy over the directories and files from your existing data directory into your new location for testing purposes.

Read this my.cnf file to see and understand what other configuration items may be changed to suit any application of your XAMPP server.


Take a look at the new DeskTopXampp launch control posted by ridgewood: ... 967#103967

The DeskTopXampp launch control for XAMPP and XAMPPlite (DTX.exe)
is available here:

I highly recommend DTX.
Last edited by Izzy on 02. September 2007 02:14, edited 1 time in total.
Posts: 3344
Joined: 25. April 2006 17:06

Return to XAMPP for Windows

Who is online

Users browsing this forum: No registered users and 42 guests