Mysql-8.3.0 Compile

Posted on Mar 1, 2024
Compile build MySQL-8.3.0 from source code.

1. Get mysql-8.3.0 source

# debian
sudo apt install libncurses-dev bison libatomic1
# fedora
sudo dnf install ncurses-devel bison libtirpc-devel rpcgen libatomic

git clone --recurse-submodules  --depth 1 --branch=mysql-8.3.0 [email protected]:mysql/mysql-server.git

2. Compile build

cd mysql-server
ccmake . # select options
cmake .
make -j16 && make install

3. Configure MySQL server

/lib/systemd/system/mysql8d.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
Wants=network-online.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=notify

TimeoutSec=0
ExecStartPre=+/usr/local/mysql8/bin/mysqld_pre_systemd
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/mysql8/my.cnf $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql

LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

/usr/local/mysql8/my.cnf

[client]
port    = 3307
socket  = /var/run/mysqld/mysql8.sock

# The MySQL server
[mysqld]
port            = 3307
mysqlx_port     = 33070
user            = mysql
socket          = /var/run/mysqld/mysql8.sock
mysqlx_socket   = /var/run/mysqld/mysql8x.sock
pid-file        = /var/run/mysqld/mysql8.pid
log_error       = /var/log/mysql/mysql8-error.log

4. Initialize database

-- first login modify password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'debian';
-- create user
CREATE USER 'wp'@'%' IDENTIFIED BY 'debian';
GRANT ALL ON *.* TO wp@'%';
-- create database
CREATE DATABASE `wordpress`  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;