Move most information from README into documentation; separate out document for building from sources.
This commit is contained in:
parent
8b8512890d
commit
42698ad6e5
@ -14,6 +14,7 @@
|
||||
## Getting Started
|
||||
|
||||
- [Getting Started with MaxScale](Getting-Started/Getting-Started-With-MaxScale.md)
|
||||
- [Building MaxScale from Source Code](Getting-Started/Building-MaxScale-from-Source-Code.md)
|
||||
- [Configuration Guide](Getting-Started/Configuration-Guide.md)
|
||||
|
||||
## Reference
|
||||
|
@ -0,0 +1,193 @@
|
||||
# Building MaxScale from Source Code
|
||||
|
||||
You will need a number of tools and libraries in order to achieve this.
|
||||
|
||||
* cmake version 2.8.12 or later
|
||||
|
||||
* gcc recommended version 4.4.7 or later
|
||||
|
||||
* libaio
|
||||
|
||||
* MariaDB Develop libraries version 5.5.38 or later
|
||||
|
||||
* libedit 2.11 or later (used by the MaxAdmin tool)
|
||||
|
||||
The full list of dependencies for the most common distros is provided in the next section.
|
||||
|
||||
### All RHEL, CentOS and Fedora versions:
|
||||
gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool
|
||||
openssl-devel libaio libaio-devel librabbitmq-devel
|
||||
In addition, if you wish to to build an RPM package include:
|
||||
|
||||
rpm-build
|
||||
|
||||
#### RHEL 6, 7, CentOS 6, 7, Fedora:
|
||||
libedit-devel
|
||||
|
||||
#### RHEL 7, CentOS 7:
|
||||
mariadb-devel mariadb-embedded-devel
|
||||
|
||||
#### RHEL 5, 7, CentOS 5, 6, Fedora 19, 20
|
||||
MariaDB-devel MariaDB-server
|
||||
|
||||
#### Fedora 19, 20
|
||||
systemtap-sdt-devel
|
||||
|
||||
### All Ubuntu and Debian versions:
|
||||
build-essential libssl-dev libaio-dev ncurses-dev bison
|
||||
cmake perl libtool librabbitmq-dev
|
||||
If you want to build a DEB package, you will also need:
|
||||
|
||||
dpkg-dev
|
||||
|
||||
#### Ubuntu 14.04 or later, Debian 8 (Jessie) or later
|
||||
libmariadbclient-dev libmariadbd-dev
|
||||
|
||||
#### Earlier versions of Ubuntu or Debian
|
||||
|
||||
For these, you will need to obtain the MariaDB embedded library. It has to be manually extracted from the tarball. But first ascertain what version of glibc is installed. Run the command:
|
||||
|
||||
dpkg -l | grep libc6
|
||||
which will show the version number. If the version is less than 2.14 you should obtain the library from:
|
||||
[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz).
|
||||
Otherwise, from:
|
||||
[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz)
|
||||
|
||||
The suggested location for extracting the tarball is /usr so the operation can be done by the following commands:
|
||||
|
||||
cd /usr
|
||||
tar -xzvf /path/to/mariadb.library.tar.gz
|
||||
where /path/to/mariadb.library.tar.gz is replaced by the actual path and name of the downloaded tarball.
|
||||
|
||||
### OpenSUSE
|
||||
|
||||
(mariadb-devel package, build fails????)
|
||||
|
||||
The packages required are:
|
||||
|
||||
gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc_s1 perl
|
||||
make libtool libopenssl-devel libaio libaio-devel
|
||||
libedit-devel librabbitmq-devel
|
||||
MariaDB-devel MariaDB-client MariaDB-server
|
||||
(if zypper ask which MariaDB client should be installed 'MariaDB-client' or 'mariadb-client'
|
||||
please select 'MariaDB-client')
|
||||
|
||||
|
||||
##Obtaining the MaxScale Source Code
|
||||
Now clone the GitHub project to your machine either via the web interface, your favorite graphical interface or the git command line
|
||||
|
||||
$ git clone https://github.com/mariadb-corporation/MaxScale
|
||||
Cloning into 'MaxScale'...
|
||||
remote: Counting objects: 16228, done.
|
||||
...
|
||||
|
||||
Change directory to the MaxScale directory, create a build directory and change directory to that build directory
|
||||
|
||||
$ cd MaxScale
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
|
||||
The next step is to run the cmake command to build the Makefile you need to compile Maxscale. There are a number of options you may give to configure cmake and point it to the various packages it requires. In this example we will assume the MariaDB developer packages have been installed as described above and set all the options required to locate these, along with options to build the unit tests and configure the installation target directory.
|
||||
|
||||
If you run into any trouble while configuring CMake, you can always remove the
|
||||
'CMakeCache.txt' file to clear CMake's internal cache. This resets all values to their
|
||||
defaults and can be used to fix a 'stuck' configuration of CMake. This is also a good
|
||||
reason why you should always build into a separate directory, because you can safely
|
||||
wipe the build directory clean without the danger of deleting important files when
|
||||
something goes wrong. Building 'out-of-source' also allows you to have multiple
|
||||
configurations of MaxScale at the same time.
|
||||
|
||||
The default values that CMake uses can be found in the 'macros.cmake' file.
|
||||
If you wish to change these, edit the 'macros.cmake' file or define the
|
||||
variables manually at configuration time.
|
||||
|
||||
To display all CMake variables with their descriptions:
|
||||
|
||||
cmake -LH <path to source>
|
||||
|
||||
When you are ready to run cmake:
|
||||
|
||||
$ cmake -DMYSQL\_DIR=/usr/mariadb-5.5.41-linux-x86_64/include/mysql \
|
||||
-DEMBEDDED\_LIB=/usr/mariadb-5.5.41-linux-x86\_64/lib/libmysqld.a \
|
||||
-DMYSQLCLIENT\_LIBRARIES=/usr/mariadb-5.5.41-linux-x86_64/lib/libmysqlclient.so \
|
||||
-DERRMSG=/usr/mariadb-5.5.41-linux-x86\_64/share/english/errmsg.sys \
|
||||
-DINSTALL\_DIR=/home/maxscale/MaxScale -DBUILD_TESTS=Y \
|
||||
-DINSTALL\_SYSTEM\_FILES=N \
|
||||
-DBUILD_BINLOG=Y ../
|
||||
|
||||
<pre>
|
||||
-- CMake version: 2.8.12.2
|
||||
-- The C compiler identification is GNU 4.4.7
|
||||
-- The CXX compiler identification is GNU 4.4.7
|
||||
-- Check for working C compiler: /usr/bin/cc
|
||||
-- Check for working C compiler: /usr/bin/cc -- works
|
||||
-- Detecting C compiler ABI info
|
||||
-- Detecting C compiler ABI info - done
|
||||
-- Check for working CXX compiler: /usr/bin/c++
|
||||
-- Check for working CXX compiler: /usr/bin/c++ -- works
|
||||
-- Detecting CXX compiler ABI info
|
||||
-- Detecting CXX compiler ABI info - done
|
||||
-- Library was found at: /lib64/libaio.so
|
||||
-- Library was found at: /usr/lib64/libssl.so
|
||||
-- Library was found at: /usr/lib64/libcrypt.so
|
||||
-- Library was found at: /usr/lib64/libcrypto.so
|
||||
-- Library was found at: /usr/lib64/libz.so
|
||||
-- Library was found at: /usr/lib64/libm.so
|
||||
-- Library was found at: /usr/lib64/libdl.so
|
||||
-- Library was found at: /usr/lib64/librt.so
|
||||
-- Library was found at: /usr/lib64/libpthread.so
|
||||
-- Using errmsg.sys found at: /home/maxscale/usr/share/mysql/english/errmsg.sys
|
||||
-- Using embedded library: /home/mpinto/usr/lib64/libmysqld.a
|
||||
-- Valgrind found: /usr/bin/valgrind
|
||||
-- Found dynamic MySQL client library: /home/maxscale/usr/lib64/libmysqlclient.so
|
||||
-- Found static MySQL client library: /usr/lib/libmysqlclient.a
|
||||
-- C Compiler supports: -Werror=format-security
|
||||
-- Linking against: /home/mpinto/usr/lib64/libmysqlclient.so
|
||||
-- Installing MaxScale to: /usr/local/maxscale/
|
||||
-- Generating RPM packages
|
||||
-- Found Doxygen: /usr/bin/doxygen (found version "1.6.1")
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: /home/maxscale/develop/build
|
||||
</pre>
|
||||
|
||||
-bash-4.1$ make depend
|
||||
-bash-4.1$ make
|
||||
|
||||
Once the cmake command is complete simply run make to build the MaxScale binaries.
|
||||
|
||||
$ make
|
||||
|
||||
<pre>
|
||||
**Scanning dependencies of target utils**
|
||||
[ 1%] Building CXX object utils/CMakeFiles/utils.dir/skygw_utils.cc.o
|
||||
**Linking CXX static library libutils.a**
|
||||
[ 1%] Built target utils
|
||||
**Scanning dependencies of target log_manager**
|
||||
[ 2%] Building CXX object log_manager/CMakeFiles/log_manager.dir/log_manager.cc.o
|
||||
...
|
||||
</pre>
|
||||
|
||||
After the completion of the make process the installation can be achieved by running the make install target.
|
||||
|
||||
$ make install
|
||||
...
|
||||
|
||||
This will result in an installation being created which is identical to that which would be achieved by installing the binary package.
|
||||
|
||||
By default, MaxScale installs to '/usr/local/skysql/maxscale' and places init.d scripts and ldconfig files into their folders. Change the CMAKE_INSTALL_PREFIX variable to your desired installation directory and set INSTALL_SYSTEM_FILES=N to prevent the init.d script and ldconfig file installation.
|
||||
|
||||
|
||||
## Running the MaxScale testsuite
|
||||
|
||||
To run "make testall" you need to have four mysqld servers running on localhost. It assumes a master-slave replication setup with one slave and three slaves.
|
||||
|
||||
The ports to which these servers are listening and the credentials to use for testing
|
||||
can be specified in the 'macros.cmake' file.
|
||||
|
||||
On the master full privileges on the databases "test" and "FOO" are needed, on the saves SELECT permissions on test.* should be sufficient.
|
||||
|
||||
When you run the 'make testall' target after configuring the build with CMake a local version of MaxScale is installed into the build folder. After this a MaxScale instance is started and the test set is executed.
|
||||
|
||||
After testing has finished you can find a full testlog generated by CTest in Testing/Temporary/ directory and MaxScale's log files in the log/ directory of the build root.
|
||||
|
@ -30,142 +30,7 @@ Upon successful completion of the installation process you have a version of Max
|
||||
|
||||
## Building MaxScale From Source Code
|
||||
|
||||
Alternatively you may download the MaxScale source and build your own binaries. You will need a number of tools and libraries in order to achieve this.
|
||||
|
||||
* cmake version 2.8.12 or later
|
||||
|
||||
* gcc recommended version 4.4.7 or later
|
||||
|
||||
* libaio
|
||||
|
||||
* MariaDB Develop libraries version 5.5.38 or later
|
||||
|
||||
* libedit 2.11 or later (used by the MaxAdmin tool)
|
||||
|
||||
The full list of dependencies for the most common distros is provided in the next section.
|
||||
|
||||
### All RHEL, CentOS and Fedora versions:
|
||||
gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool
|
||||
openssl-devel libaio libaio-devel librabbitmq-devel
|
||||
In addition, if you wish to to build an RPM package include:
|
||||
rpm-build
|
||||
|
||||
#### RHEL 6, 7, CentOS 6, 7, Fedora:
|
||||
libedit-devel
|
||||
|
||||
#### RHEL 7, CentOS 7:
|
||||
mariadb-devel mariadb-embedded-devel
|
||||
|
||||
#### RHEL 5, 7, CentOS 5, 6, Fedora 19, 20
|
||||
MariaDB-devel MariaDB-server
|
||||
|
||||
#### Fedora 19, 20
|
||||
systemtap-sdt-devel
|
||||
|
||||
### All Ubuntu and Debian versions:
|
||||
build-essential libssl-dev libaio-dev ncurses-dev bison
|
||||
cmake perl libtool librabbitmq-dev
|
||||
If you want to build a DEB package, you will also need:
|
||||
dpkg-dev
|
||||
|
||||
#### Ubuntu 14.04 or later, Debian 8 (Jessie) or later
|
||||
libmariadbclient-dev libmariadbd-dev
|
||||
|
||||
#### Earlier versions of Ubuntu or Debian
|
||||
|
||||
For these, you will need to obtain the MariaDB embedded library. It has to be manually extracted from the tarball. But first ascertain what version of glibc is installed. Run the command:
|
||||
dpkg -l | grep libc6
|
||||
which will show the version number. If the version is less than 2.14 you should obtain the library from:
|
||||
[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz).
|
||||
Otherwise, from:
|
||||
[https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz](https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz)
|
||||
|
||||
The suggested location for extracting the tarball is /usr so the operation can be done by the following commands:
|
||||
cd /usr
|
||||
tar -xzvf /path/to/mariadb.library.tar.gz
|
||||
where /path/to/mariadb.library.tar.gz is replaced by the actual path and name of the downloaded tarball.
|
||||
|
||||
##Obtaining the MaxScale Source Code
|
||||
Now clone the GitHub project to your machine either via the web interface, your favorite graphical interface or the git command line
|
||||
|
||||
$ git clone https://github.com/mariadb-corporation/MaxScale
|
||||
Cloning into 'MaxScale'...
|
||||
remote: Counting objects: 16228, done.
|
||||
...
|
||||
|
||||
Change directory to the MaxScale directory, create a build directory and change directory to that build directory
|
||||
|
||||
$ cd MaxScale
|
||||
|
||||
$ mkdir build
|
||||
|
||||
$ cd build
|
||||
|
||||
The next step is to run the cmake command to build the Makefile you need to compile Maxscale. There are a number of options you may give to configure cmake and point it to the various packages it requires. These are documented in the MaxScale README file, in this example we will assume the MariaDB developer packages have been installed in a non-standard location and set all the options required to locate these, along with options to build the unit tests and configure the installation target directory.
|
||||
|
||||
$ cmake -DMYSQL\_DIR=/usr/mariadb-5.5.41-linux-x86_64/include/mysql \
|
||||
-DEMBEDDED\_LIB=/usr/mariadb-5.5.41-linux-x86\_64/lib/libmysqld.a \
|
||||
-DMYSQLCLIENT\_LIBRARIES=/usr/mariadb-5.5.41-linux-x86_64/lib/libmysqlclient.so \
|
||||
-DERRMSG=/usr/mariadb-5.5.41-linux-x86\_64/share/english/errmsg.sys \
|
||||
-DINSTALL\_DIR=/home/maxscale/MaxScale -DBUILD_TESTS=Y \
|
||||
-DINSTALL\_SYSTEM\_FILES=N \
|
||||
-DBUILD_BINLOG=Y ../
|
||||
|
||||
-- CMake version: 2.8.12.2
|
||||
-- The C compiler identification is GNU 4.4.7
|
||||
-- The CXX compiler identification is GNU 4.4.7
|
||||
-- Check for working C compiler: /usr/bin/cc
|
||||
-- Check for working C compiler: /usr/bin/cc -- works
|
||||
-- Detecting C compiler ABI info
|
||||
-- Detecting C compiler ABI info - done
|
||||
-- Check for working CXX compiler: /usr/bin/c++
|
||||
-- Check for working CXX compiler: /usr/bin/c++ -- works
|
||||
-- Detecting CXX compiler ABI info
|
||||
-- Detecting CXX compiler ABI info - done
|
||||
-- Library was found at: /lib64/libaio.so
|
||||
-- Library was found at: /usr/lib64/libssl.so
|
||||
-- Library was found at: /usr/lib64/libcrypt.so
|
||||
-- Library was found at: /usr/lib64/libcrypto.so
|
||||
-- Library was found at: /usr/lib64/libz.so
|
||||
-- Library was found at: /usr/lib64/libm.so
|
||||
-- Library was found at: /usr/lib64/libdl.so
|
||||
-- Library was found at: /usr/lib64/librt.so
|
||||
-- Library was found at: /usr/lib64/libpthread.so
|
||||
-- Using errmsg.sys found at: /home/maxscale/usr/share/mysql/english/errmsg.sys
|
||||
-- Using embedded library: /home/mpinto/usr/lib64/libmysqld.a
|
||||
-- Valgrind found: /usr/bin/valgrind
|
||||
-- Found dynamic MySQL client library: /home/maxscale/usr/lib64/libmysqlclient.so
|
||||
-- Found static MySQL client library: /usr/lib/libmysqlclient.a
|
||||
-- C Compiler supports: -Werror=format-security
|
||||
-- Linking against: /home/mpinto/usr/lib64/libmysqlclient.so
|
||||
-- Installing MaxScale to: /usr/local/maxscale/
|
||||
-- Generating RPM packages
|
||||
-- Found Doxygen: /usr/bin/doxygen (found version "1.6.1")
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: /home/maxscale/develop/build
|
||||
|
||||
-bash-4.1$ make depend
|
||||
|
||||
-bash-4.1$ make
|
||||
|
||||
Once the cmake command is complete simply run make to build the MaxScale binaries.
|
||||
|
||||
$ make
|
||||
**Scanning dependencies of target utils**
|
||||
[ 1%] Building CXX object utils/CMakeFiles/utils.dir/skygw_utils.cc.o
|
||||
**Linking CXX static library libutils.a**
|
||||
[ 1%] Built target utils
|
||||
**Scanning dependencies of target log_manager**
|
||||
[ 2%] Building CXX object log_manager/CMakeFiles/log_manager.dir/log_manager.cc.o
|
||||
...
|
||||
|
||||
After the completion of the make process the installation can be achieved by running the make install target.
|
||||
|
||||
$ make install
|
||||
...
|
||||
|
||||
This will result in an installation being created which is identical to that which would be achieved by installing the binary package.
|
||||
Alternatively you may download the MaxScale source and build your own binaries. To do this, refer to the separate document [Building MaxScale from Source Code](/Documentation/Getting-Started/Building-MaxScale-from-Source-Code.md)
|
||||
|
||||
## Configuring MaxScale
|
||||
|
||||
@ -191,8 +56,21 @@ It is also possible to use the Read/Write Splitter with Galera. Although it is n
|
||||
|
||||
As well as the four major configuration choices outlined above there are also other configurations sub-options that may be mixed with those to provide a variety of different configuration and functionality. The MaxScale filter concept allows the basic configurations to be built upon in a large variety of ways. A separate filter tutorial is available that discusses the concept and gives some examples of ways to use filters.
|
||||
|
||||
## Running MaxScale
|
||||
|
||||
MaxScale consists of a core executable and a number of modules that implement
|
||||
the different protocols and routing algorithms. These modules are built as
|
||||
shared objects that are loaded on demand. In order for MaxScale to find these
|
||||
modules it will search using a predescribed search path. The rules are:
|
||||
|
||||
1. Look in the current directory for the module
|
||||
2. Look in $MAXSCALE_HOME/modules
|
||||
3. Look in /usr/local/skysql/maxscale/modules
|
||||
|
||||
Configuration is read by default from the file \$MAXSCALE_HOME/etc/MaxScale.cnf, /etc/MaxScale.cnf. An example file is included in in the installation and can be found in the etc/ folder within the MaxScale installation. The default value of MAXSCALE_HOME can be overriden by using the -c flag on the command line. This should be immediately followed by the path to the MaxScale home directory. The -f flag can be used on the command line to set the name and the location of the configuration file. Without path expression the file is read from \$MAXSCALE_HOME/etc directory.
|
||||
|
||||
|
||||
## Administration Of MaxScale
|
||||
|
||||
There are various administration tasks that may be done with MaxScale, a client command, maxadmin, is available that will interact with a running MaxScale and allow the status of MaxScale to be monitored and give some control of the MaxScale functionality. There is a separate reference guide for the maxadmin utility and also a short administration tutorial that covers the common administration tasks that need to be done with MaxScale.
|
||||
|
||||
|
194
README
194
README
@ -31,190 +31,20 @@ issues and communicate with the MaxScale community.
|
||||
Bugs can be reported in the MariaDB Corporation bugs database
|
||||
[bug.mariadb.com](http://bugs.mariadb.com)
|
||||
|
||||
\section Dependency List
|
||||
\section Documentation
|
||||
|
||||
Before building MaxScale from source, make sure you have installed all the dependencies for your system.
|
||||
To install MariaDB packages configure MariaDB repositories for your system:
|
||||
see instruction [here](https://downloads.mariadb.org/mariadb/repositories/)
|
||||
The full list of dependencies for the most common distros:
|
||||
For information about installing and using MaxScale, please refer to the
|
||||
documentation. It is in Markdown format.
|
||||
|
||||
All RHEL, CentOS and Fedora versions:
|
||||
You can point your browser to the MaxScale project at GitHub. Look
|
||||
inside the "Documentation" directory, where you will find a file named
|
||||
Documentation-Contents.md. Click on that, and GitHub will show the
|
||||
documentation in its intended display format. The contents page lists
|
||||
the available documents and has links to them.
|
||||
|
||||
gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool
|
||||
openssl-devel libaio libaio-devel librabbitmq-devel
|
||||
|
||||
RHEL 6, 7, CentOS 6, 7, Fedora:
|
||||
|
||||
libedit-devel
|
||||
|
||||
RHEL 7, CentOS 7:
|
||||
|
||||
mariadb-devel mariadb-embedded-devel
|
||||
|
||||
RHEL 5, 7, CentOS 5, 6, Fedora 19, 20
|
||||
|
||||
MariaDB-devel MariaDB-server
|
||||
|
||||
Fedora 19, 20
|
||||
|
||||
systemtap-sdt-devel
|
||||
|
||||
to build RPM package:
|
||||
|
||||
rpm-build
|
||||
|
||||
Ubuntu 14.04, Debian 'jessie'
|
||||
|
||||
cmake
|
||||
gcc g++ ncurses-dev bison build-essential libssl-dev libaio-dev
|
||||
perl make libtool librabbitmq-dev libmariadbclient-dev
|
||||
libmariadbd-dev mariadb-server
|
||||
|
||||
Other Ubuntu and Debian
|
||||
|
||||
MariaDB embedded library have to be manually extracted from tarball:
|
||||
https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-glibc_214-x86_64/mariadb-5.5.41-linux-glibc_214-x86_64.tar.gz
|
||||
for old systems with glibc < 2.14:
|
||||
https://downloads.mariadb.org/interstitial/mariadb-5.5.41/bintar-linux-x86_64/mariadb-5.5.41-linux-x86_64.tar.gz
|
||||
|
||||
To build DEB package:
|
||||
dpkg-dev
|
||||
|
||||
OpenSUSE (mariadb-devel package, build fails):
|
||||
gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc_s1 perl
|
||||
make libtool libopenssl-devel libaio libaio-devel
|
||||
libedit-devel librabbitmq-devel
|
||||
MariaDB-devel MariaDB-client MariaDB-server (if zypper ask which MariaDB client should be installed 'MariaDB-client' or 'mariadb-client'
|
||||
please select 'MariaDB-client')
|
||||
|
||||
|
||||
If you do not wish to install the MariaDB packages you can use the bundled RPM unpacking script:
|
||||
|
||||
./unpack_rpm.sh <location of MariaDB RPMs> <extraction destination>
|
||||
|
||||
This looks for MariaDB RPMs and unpacks them into the destination directory. This location
|
||||
can then be passed to CMake to specify the location of the headers, libraries and other required files.
|
||||
|
||||
\section Building Building MaxScale
|
||||
|
||||
Once you have installed all of MaxScale's dependencies you are ready to build MaxScale using CMake.
|
||||
|
||||
CMake tries to find all the required directories and files on its own but if it can't find them or you wish to
|
||||
explicitly state the locations you can pass additional options to CMake by using the -D flag. To confirm the variable
|
||||
values, you can run CMake in interactive mode by using the -i flag or use a CMake GUI (for example, ccmake for command line).
|
||||
|
||||
It is highly recommended to make a separate build directory to build into.
|
||||
This keeps the source and build trees clean and makes it easy to get rid
|
||||
of everything you built by simply deleting the build directory.
|
||||
|
||||
To build MaxScale using CMake:
|
||||
|
||||
cd <path to MaxScale source>
|
||||
|
||||
mkdir build
|
||||
|
||||
cd build
|
||||
|
||||
cmake ..
|
||||
|
||||
make
|
||||
|
||||
make install
|
||||
|
||||
This generates the required makefiles in the current directory, compiles
|
||||
and links all the programs and installs
|
||||
all the required files in their right places.
|
||||
|
||||
If you have your headers and libraries in non-standard locations, you can
|
||||
define those locations at configuration time as such:
|
||||
|
||||
cmake -D<variable>=<value>
|
||||
|
||||
|
||||
This libmysqld.a comes from the RPM or it is copied from an existing
|
||||
MariaDB setup. The file embedded_priv.h is not available in the RPM
|
||||
packages, please get it from an existing MariaDB setup and copy it
|
||||
to one of the path in MYSQL_HEADERS
|
||||
|
||||
The ERRMSG variable points to the errmsg.sys file that is required
|
||||
by the embedded library. If you unpacked the RPMs using the script
|
||||
you need to provide the location of the errmsg.sys file when you
|
||||
are configuring the build system.
|
||||
|
||||
Example:
|
||||
|
||||
cmake -DERRMSG=/home/user/share/english/errmsg.sys ..
|
||||
|
||||
|
||||
Please note the errmsg.sys file is NOT included in the RPMs at the
|
||||
current time, it must be taken from an existing MariaDB setup. The
|
||||
version of the errmsg.sys file must match the version of the developer
|
||||
package you are using. A version mismatch will cause the library to fail
|
||||
to initialise.
|
||||
|
||||
By default, MaxScale installs to '/usr/local/skysql/maxscale' and places init.d scripts
|
||||
and ldconfig files into their folders. Change the CMAKE_INSTALL_PREFIX variable to your desired
|
||||
installation directory and set INSTALL_SYSTEM_FILES=N to prevent the init.d script and
|
||||
ldconfig file installation.
|
||||
|
||||
If you run into any trouble while configuring CMake, you can always remove the
|
||||
'CMakeCache.txt' file to clear CMake's internal cache. This resets all values to their
|
||||
defaults and can be used to fix a 'stuck' configuration of CMake. This is also a good
|
||||
reason why you should always build into a separate directory, because you can safely
|
||||
wipe the build directory clean without the danger of deleting important files when
|
||||
something goes wrong. Building 'out-of-source' also allows you to have multiple
|
||||
configurations of MaxScale at the same time.
|
||||
|
||||
The default values that CMake uses can be found in the 'macros.cmake' file.
|
||||
If you wish to change these, edit the 'macros.cmake' file or define the
|
||||
variables manually at configuration time.
|
||||
|
||||
To display all CMake variables with their descriptions:
|
||||
|
||||
cmake -LH <path to source>
|
||||
|
||||
\section Running Running MaxScale
|
||||
|
||||
MaxScale consists of a core executable and a number of modules that implement
|
||||
the different protocols and routing algorithms. These modules are built as
|
||||
shared objects that are loaded on demand. In order for MaxScale to find these
|
||||
modules it will search using a predescribed search path. The rules are:
|
||||
|
||||
1. Look in the current directory for the module
|
||||
|
||||
2. Look in $MAXSCALE_HOME/modules
|
||||
|
||||
3. Look in /usr/local/skysql/maxscale/modules
|
||||
|
||||
Configuration is read by default from the file
|
||||
$MAXSCALE_HOME/etc/MaxScale.cnf, /etc/MaxScale.cnf, an example file
|
||||
is included in in the installation and can be found in the etc/ folder.
|
||||
The default value of MAXSCALE_HOME can be overriden by using the -c flag
|
||||
on the command line. This should be immediately followed by the path to
|
||||
the MaxScale home directory.
|
||||
|
||||
The -f flag can be used to set the name and the location of the configuration
|
||||
file. Without path expression the file is read from $MAXSCALE_HOME/etc directory.
|
||||
|
||||
\section Testing Running MaxScale testsuite
|
||||
|
||||
To run "make testall" you need to have four mysqld servers running
|
||||
on localhost. It assumes a master-slave replication setup with one slave and
|
||||
three slaves.
|
||||
|
||||
The ports to which these servers are listening and the credentials to use for testing
|
||||
can be specified in the 'macros.cmake' file.
|
||||
|
||||
On the master full privileges on the databases "test" and "FOO"
|
||||
are needed, on the saves SELECT permissions on test.* should
|
||||
be sufficient.
|
||||
|
||||
When you run the 'make testall' target after configuring the build with CMake
|
||||
a local version of MaxScale is installed into the build folder. After this a MaxScale
|
||||
instance is started and the test set is executed.
|
||||
|
||||
After testing has finished you can find a full testlog
|
||||
generated by CTest in Testing/Temporary/ directory and MaxScale's
|
||||
log files in the log/ directory of the build root.
|
||||
If you do not want to rely on the internet, then clone the project
|
||||
from GitHub - either the entire project or just the Documentation folder.
|
||||
Then point your browser to the Documentation-Contents.md file in your
|
||||
local file system and proceed as above.
|
||||
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user