CentOS 7.5 编译安装 MariaDB 10.3.9
本文主要记录如何在
CentOS 7.5中编译安装MariaDB官方最新的10.3.9版本。由于像Nginx、MariaDB和PHP的的源码都是用C/C++写的,所以自己的CentOS 7.5服务器上必须要安装gcc和g++软件。搭建
LNMP环境一般是先安装Mysql/MariaDB, 再安装Nginx, 其次是安装PHP
文章目录
- 安装环境
- 创建MariaDB安装目录、数据库存放目录、建立用户和目录
- 创建数据库相关目录
- 删除CentOS 默认数据库配置文件
- 卸载系统自带`mariadb-libs`
- 安装相关包
- 创建家目录存放软件包目录
- 下载解压源码包
- 编译前配置
- 编译和安装
- 配置`MariaDB`
- 复制`MariaDB`配置文件到`/etc`目录
- 创建启动脚本
- 启动`mysqld`服务
- 配置环境变量
- 初始化MariaDB
- 启动`MariaDB`服务
- 查看`MariaDB`服务状态
安装环境
- 系统:
CentOS 7.5.1804 - 软件:
MariaDB 10.3.9 - 依赖软件:
Cmake、Ncurses、Bison、Boost
创建MariaDB安装目录、数据库存放目录、建立用户和目录
先创建一个名为
mysql且没有登录权限的用户和一个名为mysql的用户组,然后安装mysql所需的依赖库和依赖包,最后通过cmake进行安装的详细配置。
- 创建
mysql用户组
> 创建`mysql`用户组(`-r`选项是创建一个系统用户组的意思)[root@lightserver ~]$ groupadd -r mysql
- 创建用户并加入到
mysql系统用户组
> 添加新用户> -r: 添加系统用户( 这里指将要被创建的系统用户`mysql`)> -g: 指定要创建的用户所属组( 这里指添加到新系统用户`mysql`到`mysql`系统用户组 )> -s: 新帐户的登录`shell`( `/sbin/nologin` 这里设置为将要被创建系统用户`php`不能用来登录系统 )> -d: 新帐户的主目录( 这里指定将要被创建的系统用户`php`的家目录为 `/usr/local/php` )> -M: 不要创建用户的主目录( 也就是说将要被创建的系统用户`mysql`不会在 `/home` 目录下创建 `mysql` 家目录 )[root@lightserver ~]$ useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql
创建数据库相关目录
提前预定
MariaDB的安装目录为/usr/local/mysql并且数据目录为/data/mysql,赋予mysql用户权限
[root@lightserver ~]$ mkdir -pv /data/mysql[root@lightserver ~]$ chown -R mysql:mysql /data/mysql/
删除CentOS 默认数据库配置文件
[root@lightserver ~]$ find -H /etc/ | grep my.c /etc/my.cnf.d
/etc/my.cnf.d/mysql-clients.cnf
/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
/etc/my.cnf[root@lightserver ~]$ rm -rf /etc/my.cnf /etc/my.cnf.d/[root@lightserver ~]$ find -H /etc/ | grep my.c/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
卸载系统自带mariadb-libs
> 查询[root@lightserver ~]$ rpm -qa|grep mariadb*mariadb-libs-5.5.60-1.el7_5.x86_64> 卸载[root@lightserver ~]$ rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
安装相关包
[root@lightserver ~]$ yum -y install libaio libaio-devel bison bison-devel zlib-devel openssl openssl-devel ncurses ncurses-devel libcurl-devel libarchive-devel boost boost-devel lsof wget gcc gcc-c++ make cmake perl kernel-headers kernel-devel pcre-devel
创建家目录存放软件包目录
> 创建家目录存放软件包目录[root@lightserver ~]$ mkdir soft && cd soft
下载解压源码包
> 下载
[root@lightserver soft]$ wget https://downloads.mariadb.org/interstitial/mariadb-10.3.9/source/mariadb-10.3.9.tar.gz> 解压
# tar -zxvf mariadb-10.3.9.tar.gz
CMake:编译工具
> 下载[root@lightserver soft]$ wget https://cmake.org/files/v3.12/cmake-3.12.1.tar.gz> 解压# tar -zxvf cmake-3.12.1.tar.gz> 进入解压后的源码目录编译并安装# cd cmake-3.12.1/# ./bootstrap# gmake # make && make install# cmake --version# cd ~/soft/
Ncurses:提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。
> 下载[root@lightserver.cn soft]$ wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz> 解压# tar -zxvf ncurses-6.1.tar.gz> 进入解压后的源码目录编译并安装# cd ncurses-6.1/# ./configure# make && make install# cd ~/soft/
Bison:GNU分析器生成器
> 下载[root@lightserver soft]$ wget http://ftp.gnu.org/gnu/bison/bison-3.0.5.tar.gz> 解压# tar -zxvf bison-3.0.5.tar.gz> 进入解压后的源码目录编译并安装# cd bison-3.0.5/# ./configure# make && make install# cd ~/soft/
Boost库:一个开源可移植的C++库,是C++标准化进程的开发引擎之一
> 下载[root@lightserver soft]$ wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz> 解压# tar -zxvf boost_1_68_0.tar.gz> 进入解压后的源码目录编译并安装# cd boost_1_68_0/# ./bootstrap.sh# ./b2 stage --with-iostreams --toolset=gcc link=static runtime-link=shared threading=multi release# ./b2 install --prefix=/opt/boost
编译前配置
# cd ~/soft/mariadb-10.3.9> 输入编译参数# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DEXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_MAINTAINER_MODE=0> 如果编译失败请删除CMakeCache.txt# rm -f CMakeCache.txt> 让指令重新执行,否则每次读取这个文件,命令修改正确也是报错
注释版
# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 \ [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \ [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 \ [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \ [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all \ [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc \ [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_DEBUG=0 \ [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_READLINE=1 \ [MySQL的readline library]
-DWITH_SSL=system \ [通讯时支持ssl协议]
-DWITH_ZLIB=system \ [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \ [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql \ [MySQL用户名]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \ [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \ [MySQL的监听端口]
-DMYSQL_MAINTAINER_MODE=0
编译和安装
# make && make install
# cd
配置MariaDB
> 使用maria用户执行脚本, 安装数据库到数据库存放目录[root@lightserver ~]$ /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql
复制MariaDB配置文件到/etc目录
> 拷贝maria安装目录下 support-files目录下的文件wsrep.cnf到/etc目录并重命名为my.cnf[root@lightserver ~]$ cp /usr/local/mysql/support-files/wsrep.cnf /etc/my.cnf
创建启动脚本
[root@lightserver ~]$ cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
启动mysqld服务
[root@lightserver ~]$ /etc/rc.d/init.d/mysqld start
配置环境变量
> 打开并新建文件[root@lightserver ~]$ vim /etc/profile.d/mysql.sh> 输入以下内容export PATH=$PATH:/usr/local/mysql/bin/> 保存并退出:wq> 为脚本赋于可执行权限[root@lightserver ~]$ chmod 0777 /etc/profile.d/mysql.sh> 读取并执行`mysql.sh`脚本, 并执行脚本, 以立即生效环境变量[root@lightserver ~]$ source /etc/profile.d/mysql.sh
初始化MariaDB
> 运行MariaDB初始化脚本[root@lightserver ~]$ /usr/local/mysql/bin/mysql_secure_installation
Nh123456;> 运行MariaDB初始化脚本[root@localhost mysql]$ ./bin/mysql_secure_installation> 以下提示:Enter current password for root (enter for none): 输入当前root密码(没有输入)Set root password? [Y/n] 设置root密码?(是/否)New password: 输入新root密码Re-enter new password: 确认输入root密码Password updated successfully! 密码更新成功By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.默认情况下,MariaDB安装有一个匿名用户,
允许任何人登录MariaDB而他们无需创建用户帐户。
这个目的是只用于测试,安装去更平缓一些。
你应该进入前删除它们生产环境。Remove anonymous users? [Y/n] 删除匿名用户?(是/否)Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.通常情况下,root只应允许从localhost连接。
这确保其他用户无法从网络猜测root密码。Disallow root login remotely? [Y/n] 不允许root登录远程?(是/否)By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.默认情况下,MariaDB提供了一个名为“测试”的数据库,任何人都可以访问。
这也只用于测试,在进入生产环境之前应该被删除。Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.重新加载权限表将确保所有到目前为止所做的更改将立即生效。Reload privilege tables now? [Y/n] 现在重新加载权限表(是/否)All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.全部完成!如果你已经完成了以上步骤,MariaDB安装现在应该安全。Thanks for using MariaDB!感谢使用MariaDB!
启动MariaDB服务
[root@lightserver ~]$ systemctl start mysqld
查看MariaDB服务状态
[root@lightserver ~]$ systemctl status mysqld
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
