千家信息网

如何在Linux下编译安装MariaDB

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,MariaDB是MySQL的一个开源分支,主要是社区在维护,并且完全兼容MySQL,并且可以很方便的称为MySQL的替代MariaDB的诞生正是出自MySQL创始人Michael Widenius之手
千家信息网最后更新 2024年11月22日如何在Linux下编译安装MariaDB
MariaDB是MySQL的一个开源分支,主要是社区在维护,并且完全兼容MySQL,并且可以很方便的称为MySQL的替代

MariaDB的诞生正是出自MySQL创始人Michael Widenius之手,命名的来源是他女儿的名字Maria,因为之前他把MySQL卖给sun公司,而sun又被oracle收购,所以MySQL也属于oracle所有,因此存在闭源的风险;而Michael Widenius开发的MariaDB作为MySQL的开源分支,很好的避免的这个潜在的问题,所以MariaDB成为了MySQL未来的替代,很多厂商也越来越关注MariaDB,并且MariaDB在很多方面的性能也要强过MySQL,像目前Windows桌面的php集成开发环境比如xampp还有 linux和lnmp环境都采用MariaDB作为默认的数据库,所以从MySQL转向MariaDB也是一种趋势,以上说那么多,使用MariaDB的第一步是要部署在操作系统,现在开始在Linux上用编译源码的方式来安装MariaDB

准备物料

首先去MariaDB官网下载安装包,首页是:https://mariadb.org/

然后点击Download进入下载页,地址是:https://downloads.mariadb.org/

这里点击绿色按钮下载最新稳定版10.1.18,进入选择页面:

因为这里是编译安装,所以暂时不针对某一系统的二进制包进行下载,这里下载源码包mariadb-10.1.18.tar.gz,下载之后上传至服务器

安装依赖

安装MariaDB之前,首先要安装cmake,另外为了保证不缺依赖,使用yum或者rpm安装依赖:readline-devel,zlib-devel,openssl-devel,libaio-devel并且readline-devel依赖于ncurses-devel,如果使用yum的话会自动将所需依赖安装好,具体 命令如下:

yum -y install readline-develyum -y install zlib-develyum -y install openssl-develyum -y install libaio-devel

这里提前预定mysql的安装目录为/usr/local/mysql并且数据目录为/data1/mysql,这里要建立用户和目录,并且赋予mysql用户权限,操作如下:

groupadd -r mysqluseradd -g mysql -s /sbin/nologin mysqlmkdir /usr/local/mysqlmkdir -p /data1/mysqlchown -R mysql:mysql /data1/mysql/

现在可以开始安装了,解压安装包,并进入目录:

tar -xvzf mariadb-10.1.18.tar.gzcd mariadb-10.1.18/
编译安装

执行编译安装:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

这里说明一下:-DCMAKE_INSTALL_PREFIX是指定安装的位置,这里是/usr/local/mysql,-DMYSQL_DATADIR是指定MySQL的数据目录,这里是/data1/mysql,安装目录和数据目录都可以自定义设置,-DSYSCONFDIR是指定配置文件所在的目录,一般都是/etc ,具体的配置文件是/etc/my.cnf,-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MySQL中一款开源的存储引擎,可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机默认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:
CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message)这样的错误,然后后面那些参数都是可选的,可以加也可以不加,最后的编码建议设置一下,所以编译指令也可以简化成下面这样:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

注意:如果万一执行中有了错误,可以执行: rm -f CMakeCache.txt 删除编译缓存,让指令重新执行,否则每次读取这个文件, 命令修改正确也是报错

cmake没问题,可以编译并且安装了: make && make install 时间有点长,耐心等待

执行完成也就是安装完成了,现在执行 cd /usr/local/mysql/ 进入mysql安装目录分别执行下面命令:

chown -R mysql:mysql .scripts/mysql_install_db --datadir=/data1/mysql --user=mysqlchown -R root .cp support-files/mysql.server /etc/init.d/mysqld
系统配置

然后还可以将mysqld添加至系统服务:

chkconfig --add mysqld   # 添加至系统服务chkconfig mysqld on    # 设置开机自启动

现在如果启动可能会报错,原因是日志目录没有建立,默认是 /var/log/mariadb/mariadb.log,后来也可以修改,现在执行: mkdir/var/log/mariadb 建立日志目录,然后执行: /etc/init.d/mysqld start 或者 systemctl start mysqld.service 都可以启动mysql服务

启动服务后,还不能马上进入mysql shell界面,原因是刚才编译时执行本地socket为: /tmp/mysql.sock但是查看 /etc/my.cnf中配置的位置却是: /var/lib/mysql/mysql.sock,现在执行命令: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立软链接即可

为了方便可以将mysql目录添加到环境变量,现在可以执行 ./bin/mysql 直接进入MariaDB交互式界面了,默认root用户密码为空:

到这里MariaDB的编译安装过程就全部安装完成了,至于后续的修改密码,远程用户授权,sql操作等等与之前MySQL完全一致,所以就不在详细叙述了

关于MariaDB二进制包的安装,后续可能会继续更新相关的文档

原文地址: https://www.linuxprobe.com/linux-cc-mariadb.html

目录 编译 系统 数据 服务 命令 用户 配置 文件 环境 开发 二进制 位置 分支 原因 参数 地址 密码 引擎 指令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mysql数据库索引模式 租车软件开发商 网络安全已经影响到什么方面 网络安全包括哪些职位 ug如何做加工数据库 数据库文件或附属文件有缺失 黄浦区项目软件开发质量服务 御剑连城几个服务器 深圳极速软件开发有限公司 东南大学网络安全录取名单 国家贫困生数据库怎么查找 注册 登陆 数据库操作 网络安全三个层面 龙之谷单机版服务器启动后没反应 花都物联网软件开发费用 台州天台县企业软件开发 http方法服务器端安全 软件开发需要数学建模 器械安装教程应用软件开发应用 更改联系服务器管理地址 计算机三级网络技术 课程 宝山区网络营销软件开发管理系统 我的世界服务器选什么系统 支付模块需要什么服务器 御剑连城几个服务器 如何进行数据库迁移 网络技术新科技 飙酷车神服务器中断什么情况 网络安全公开课教案 安琪拉现在还有多少个服务器
0