Mariadb-11.4.1 Compile

Posted on Dec 5, 2023
Compile build Mariadb-11.4.1 from source code.

1. Get source code

apt install liblz4-dev libxml2-dev liblzo2-dev libsnappy-dev libcurl4-openssl-dev cmake-curses-gui libboost-dev libpcre2-dev libzstd-dev

git clone --depth 1 --recurse-submodules --branch=mariadb-11.4.1 [email protected]:MariaDB/server.git mariadb-server

2. Compile build

cd mariadb-server
mkdir build && cd build

# config build options
ccmake ..
# make
make -j16
make install

3. Initialize database

# initialize
/usr/local/mariadb/scripts/mariadb-install-db --initialize --explicit_defaults_for_timestamp  --datadir=/database/mariadb/data --user=mysql --basedir=/usr/local/mariadb

4. Configure mariadb server

mkdir /var/run/mysqld /var/log/mysql
chown mysql:mysql /var/run/mysqld /var/log/mysql

/etc/mysql/mariadb.conf.d/50-server.cnf

[mariadb]
bind-address    = 0.0.0.0
port            = 3308
datadir         = /database/mariadb/data
socket          = /var/run/mysqld/mariadb.sock
server-id       = 101
log_bin         = /var/log/mysql/mariadb.log
log_error       = /var/log/mysql/mariadb-error.log
binlog-format   = row
gtid_domain_id  = 1
pid-file        = /var/run/mysqld/mariadb.pid

/etc/mysql/mariadb.conf.d/50-client.cnf

[client]
port=3308
socket=/var/run/mysqld/mariadb.sock

/lib/systemd/system/mariadb.service

[Unit]
Description=MariaDB database server
After=network.target
After=syslog.target
[Service]
Type=simple
PrivateNetwork=false
User=mysql
Group=mysql
CapabilityBoundingSet=CAP_IPC_LOCK
PermissionsStartOnly=true
# ExecStart=/usr/local/mariadb/bin/mysqld_safe --basedir=/usr/local/mariadb --datadir=/database/mariadb/data
ExecStart=/usr/local/mariadb/bin/mariadbd --basedir=/usr/local/mariadb --datadir=/database/mariadb/data
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

Restart=on-abort
RestartSec=5s
UMask=007
PrivateTmp=false
LimitNOFILE=16364

[Install]
WantedBy=multi-user.target

5. Create user

-- sudo mysql -S /run/mysqld/mariadb.sock  -uroot
-- sudo -Su mysql mysql
GRANT ALL ON *.* TO usr1@'%' IDENTIFIED BY 'debian';
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'debian';