MariaDB数据库编译安装

适用说明:

此贴待改,原始时间为:2018年8月6日19:03:15重新修订
测试10.3.7可用
2021年6月2日测试Centos8.3.2011 MariaDB10.5.10可用

安装

自行下载mysql源码包,这里以mariadb-10.3.3.tar.gz 为例。
官方Mariadb下载地址
参考

1)创建环境:

#mkdir /opt/Mariadb	'创建数据库程序存放路径
#mkdir /usr/local/data	'创建数据库数据库存放路径

# groupadd mysql -r
# useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql

以下是上面创建系统用户mysql的各个参数说明:
-r: 添加系统用户( 这里指将要被创建的系统用户mysql )

-g: 指定要创建的用户所属组( 这里指添加到新系统用户mysql到mysql系统用户组 )

-s: 新系统帐户的登录shell( /sbin/nologin 这里设置为将要被创建系统用户mysql不能用来登录系统 )

-d: 新帐户的主目录( 这里指定将要被创建的系统用户mysql的家目录为 /usr/local/mysql )

-M: 不要创建用户的主目录( 也就是说将要被创建的系统用户mysql不会在 /home 目录下创建 mysql 家目录 )

安装依赖:

#yum install cmake gcc-c++

2)编译安装数据库
解压进入待编译路径

#tar -zxvf mariadb-10.3.3.tar.gz
#cd mariadb-10.3.3

编译安装参数:
#cmake . \
 -DCMAKE_INSTALL_PREFIX=/opt/Mariadb/ \
 -DMYSQL_DATADIR=/usr/local/data/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 \

#echo $?
输出0无报错后继续
#make && make install 
前面只是编译,现在是将编译好的内容安装。PS:过程会有点长。真的很长~

#echo $?
输出0无报错后继续
进入到 MariaDB 安装目录
使用 `mysql` 用户执行脚本, 安装数据库到数据库存放目录
#scripts/mysql_install_db --user=mysql --datadir=/usr/local/data/mysql --basedir=/opt/Mariadb

 复制MariaDB配置文件到/etc目录
#cp support-files/my-large.cnf /etc/my.cnf
拷贝support-files目录下的文件my-large.cnf到/etc目录并重命名为my.cnf
如果没有配置文件,自行find解决

启动数据库
#./support-files/mysql.server
创建启动脚本
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld		’此步对于centos7省略,自行创建mysql.server脚本

配置环境变量, 以便在任何目录下输入mysql
#vim /etc/profile.d/mysql.sh
在/etc/profile.d/中新建一个mysql.sh
里面输入以下内容:
export PATH=$PATH:/opt/Mariadb/bin
:x
保存退出
#chmod +x /etc/profile.d/mysql.sh
为脚本赋于可执行权限
#source /etc/profile.d/mysql.sh

初始化数据库
运行MariaDB初始化脚本
#./bin/mysql_secure_installation

>grant all privileges on *.* to '用户名'@'%' identified by '登录密码' with grant option;
授权远程登录

>flush privileges;
刷新权限表

输入mysql -u root -p进入终端

番外篇

CentOS 7为什么放弃了MySQL,而改使用MariaDB?
知乎原文(https://www.zhihu.com/question/41832866)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可
。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,
因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,
将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,
MySQL的所有权也落入Oracle的手中。

MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。

版本[编辑]

MariaDB直到5.5版本,均依照MySQL的版本。
因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。
10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
第三方软件[编辑]
MariaDB的API和协议兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和进度报告。
这意味着,所有使用MySQL的连接器、程序库和应用程序也将可以在MariaDB下工作。
在此基础上,由于担心甲骨文MySQL的一个更加封闭的软件项目,Fedora的计划在Fedora 19中的以MariaDB取代MySQL
[4]
,维基媒体基金会的服务器同样也使用MariaDB取代了MySQL

# Linux  mysql 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×