Running MariaDB from the Source Directory

You are viewing an old version of this article. View the current version here.

You can run mysqld directly from the source directory (without doing make install).

Starting mysqld after build on Windows

On Windows, the data directory is produced during the build.

The simplest way to start database from the command line is:

  1. Go to the directory where mysqld.exe is located (subdirectory sql\Debug or sql\Relwithdebinfo of the build directory)
  2. From here, execute
    mysqld.exe --datadir=..\data --console
    

As usual, you can pass other mysqld parameters on the command line, or store them in a my.ini configuraton file and pass --defaults-file=path\to\my.ini

The default search path on Windows for the my.cnf file is:

  • GetSystemWindowsDirectory()
  • GetWindowsDirectory()
  • C:\
  • Directory where the executable is located

Starting mysqld after build on Unix

Copy the following to your '~/.my.cnf' file.

There are two lines you have to edit: 'data=' and 'language='. Be sure to change them to match your environment.

# Example mysql config file.
# You can copy this to one of:
# /etc/my.cnf to set global options,
# /mysql-data-dir/my.cnf to get server specific options or
# ~/my.cnf for user specific options.
# 
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options

# This will be passed to all mysql clients
[client]
#password=my_password
#port=3306
#socket=/tmp/mysql.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# The MySQL server
[mysqld]
#port=3306
#socket=/tmp/mysql.sock
temp-pool

# The following three entries caused mysqld 10.0.1-MariaDB (and possibly other versions) to abort...
# skip-locking
# set-variable  = key_buffer=16M
# set-variable  = thread_cache=4

loose-innodb_data_file_path = ibdata1:1000M
loose-mutex-deadlock-detector
gdb

######### Fix the two following paths

# Where you want to have your database
data=/path/to/data/dir

# Where you have your mysql/MariaDB source + sql/share/english
language=/path/to/src/dir/sql/share/english

########## One can also have different path for different versions, to simply development

[mariadb-10.1]
lc-messages-dir=/my/maria-10.1/sql/share

[mariadb-10.2]
lc-messages-dir=/my/maria-10.2/sql/share

########## Common option to other binaries

[mysqldump]
quick
set-variable = max_allowed_packet=16M

[mysql]
no-auto-rehash

[myisamchk]
set-variable= key_buffer=128M

With the above file in place, go to your MariaDB source directory and execute:

./scripts/mysql_install_db --srcdir=$PWD --datadir=/path/to/data/dir --user=$LOGNAME

Above '$PWD' is the environment variable that points to your current directory. If you added datadir to your my.cnf, you don't have to give this option above. Also above, --user=$LOGNAME is necessary when using msqyld 10.0.1-MariaDB (and possibly other versions)

Now you can start mysqld in the debugger:

cd sql
ddd mysqld &

Or start mysqld on its own:

cd sql
./mysqld &

After starting up mysqld using one of the above methods (with the debugger or without), launch the client (as root if you don't have any users setup yet).

../client/mysql

Using a storage engine plugin

The simplest case is to compile the storage engine into MariadB:

configure --with-plugin-<plugin_name>

Another option is to point mysqld to the storage engine directory:

mysqld --plugin-dir=source-dir-path/storage/connect/.libs

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.