如何在Raspbian Jessie上从源代码编译MariaDB

本教程说明如何在Raspbian Jessie上从源代码编译MariaDB以及如何使用Systemd管理MariaDB守护程序。 MariaDB的最新稳定版本是10.1.12。

从源代码编译MariaDB

从MariaDB官方网站下载MariaDB源代码,或使用wget下载。 如果您没有安装程序,则通过SSH进入Raspberrry Pi。

wget http://mirrors.opencas.cn/mariadb//mariadb-10.1.12/source/mariadb-10.1.12.tar.gz

提取压缩包。

tar xvf mariadb-10.1.12.tar.gz

安装在Raspbian Jessie上构建MariaDB所需的构建工具。

sudo apt-get build-dep mariadb-server

cd到新创建的目录。

cd mariadb-10.1.12/

使用cmake配置构建。

cmake . -DBUILD_CONFIG=mysql_release

使用make命令开始编译过程。

make

  在Raspbian Jessie上从源代码编译MariaDB

在低端Raspberry Pi上,此编译阶段可能需要6个小时。 所以请耐心等待。 完成后,将其安装到您的Raspberry Pi上。

sudo make install

启动MariaDB之前要做的事情

创建mysql用户。

sudo useradd -r mysql

使mysql用户成为的所有者 /usr/local/mysql。 MariaDB已安装到此目录。

sudo chown -R mysql /usr/local/mysql/

初始化MariaDB数据目录,并使用以下命令创建系统表和帮助表 mysql_install_db。 MariaDB服务器mysqld在稍后运行时需要访问数据目录。

sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql

/usr/local/mysql/bin 到用户pi的PATH。

PATH=$PATH:/usr/local/mysql/bin

也是root用户的PATH。

su 

PATH=$PATH:/usr/local/mysql/bin

使用以下命令启动MariaDB守护程序:

sudo /usr/local/mysql/bin/mysqld_safe --datadir="/usr/local/mysql/data"

为MariaDB根用户设置密码。

sudo mysql_secure_installation

该命令还为您提供了删除默认情况下创建的测试数据库和匿名用户的选项。 强烈建议将其用于生产服务器。

创建系统化的MariaDB服务文件

sudo nano /etc/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/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/mysql/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
Alias=mysql.service
Alias=mysqld.service

保存并关闭文件。 终止当前正在运行的MariaDB守护程序,然后使用systemctl重新启动它。

sudo pkill mysqld
sudo systemctl start mariadb

检查状态。

sudo systemctl status mariadb

  在Raspbian Jessie上从源代码编译MariaDB

在Raspberry Pi开机时启用自动启动。

sudo systemctl enable mariadb

恭喜! 您已经成功编译了MariaDB 10.1.12并将其安装在Raspbian Jessie上。 此外,我们还创建了mariadb.service文件,并可以使用Systemd轻松管理MariaDB守护程序。

Sidebar