千家信息网

MariaDB三种方法安装及多实例实现

发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,本章内容Mariadb的三种安装方式:1、程序包管理器管理的程序包2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用3、源代码:编译安装MariaDB在一台机器上的多实例实现本机环境系统
千家信息网最后更新 2025年11月18日MariaDB三种方法安装及多实例实现

本章内容

Mariadb的三种安装方式:

1、程序包管理器管理的程序包

2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用

3、源代码:编译安装

MariaDB在一台机器上的多实例实现

本机环境

系统版本:以CentOS_7.5_x86_64为例

MariaDB版本:以MariaDB 10.2.15 Stable为例

程序包管理器(yum)方式安装MariaDB

1、配置好yum源后,输yum -y install mariadb-server即可,不过mariadb版本是5.5的,不是较新的

2、如果想用yum安装较新版本的mariadb,可到MariaDB官网上查较新版本的yum源,官网地址是http://mariadb.org/,打开网页后点击Download,再点Download


3、这里以10.2.15版本为例,点击Download 10.2.15 Stable Now!


4、拉到最下面,点击Repository Configuration Tool.


5、依次点击CentOS --> CentOS 7 (x86_64) --> 10.2 [Stable],可以看到下方出现了yum源信息,将此信息复制,即可在CentOS中以此配置yum仓库

配好后输命令:

yum clean all

yum repolist

yum -y install mariadb-server

即可安装较新版的10.2.15版的MariaDB

安装包准备

准备MariaDB的源码安装包,以及二进制程序安装包

二进制程序安装包其实就是已编译好的包,不用再编译

1、到官网上下载安装包,仍然是点击Download,再点击Download,之后点击Download 10.2.15 Stable Now


2、下载两个包,mariadb-10.2.15.tar.gz是源码包,mariadb-10.2.15-linux-x86_64.tar.gz是二进制格式的程序包


3、用Linux的rz工具或者Xshell的xftp工具,把两个程序包传到两台虚拟机上


二进制程序包安装MariaDB

(1) 准备用户

groupadd -r -g 306 mysql

useradd -r -g 306 -u 306 -m -d /data/mysqldb mysql

(2) 准备数据目录

以/data/mysqldb为例,建议使用逻辑卷

chown mysql:mysql /data/mysqldb

chmod 700 /data/mysqldb

(3) 准备二进制程序

tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local #/usr/local是程序包指定的目录,必须解压在这里

cd /usr/local;ln -sv mariadb-10.2.15 mysql

chown -R mysql:mysql /usr/local/mysql/

(4) 准备配置文件

mkdir /etc/mysql/

cp support-files/my-huge.cnf /etc/mysql/my.cnf

#/usr/local/mysql/support-files下有很多my-*.cnf文件,分别对应不同的内存大小,可打开看看,选择对应自己机器的拷贝就行

vim /etc/mysql/my.cnf

[mysqld]中添加三个选项:

datadir = /data/mysqldb

innodb_file_per_table = on 可不加

skip_name_resolve = on 禁止主机名解析,建议使用,不加也可

(5) 创建数据库文件

cd /usr/local/mysql/

./scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql

(6) 准备日志文件

touch /var/log/mysqld.log

chown mysql:mysql /var/log/mysqld.log

(7) 准备服务脚本,并启动服务

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

service mysqld start

(8) 安全初始化

/user/local/mysql/bin/mysql_secure_installation

(9) 添加环境变量

echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh


源码编译安装MariaDB

(1) 安装包

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake libevent-devel gnutls-devel libaio-devel openssl-devel ncurses-devel libxml2-devel

(2) 做准备用户和数据目录

mkdir /data

useradd -r -s /sbin/nologin -m -d /data/mysqldb/ mysql

tar xvf mariadb-10.2.15.tar.gz

(3) cmake 编译安装

cd mariadb-10.2.15/

编译选项,可参考:

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

这里直接输命令

cmake . \

-DCMAKE_INSTALL_PREFIX=/app/mysql \

-DMYSQL_DATADIR=/data/mysqldb/ \

-DSYSCONFDIR=/etc \

-DMYSQL_USER=mysql \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \

-DWITH_DEBUG=0 \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_LIBWRAP=0 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

make && make install

(4) 准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

(5) 生成数据库文件

chmod 700 /data/mysqldb

cd /app/mysql/

scripts/mysql_install_db --datadir=/data/mysqldb/ --user=mysql

(6) 准备配置文件

cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

vim /etc/mysql/my.cnf

[mysqld]中添加:

datadir = /data/mysqldb

chown -R mysql:mysql /app/mysql/

(7) 准备启动脚本

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

(8) 启动服务

chkconfig --add mysqld

service mysqld start

MariaDB在一台机器上的多实例实现

(1) 安装MariaDB,这里用yum安装

yum install mariadb-server

(2) 创建多实例目录

这里创建三个实例,最后三个实例会分别使用3306,3307,3308端口

mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv

chown -R mysql.mysql /mysqldb/

(3) 生成数据库文件

mysql_install_db --datadir=/mysqldb/3306/data --user=mysql

mysql_install_db --datadir=/mysqldb/3307/data --user=mysql

mysql_install_db --datadir=/mysqldb/3308/data --user=mysql

(4) 准备配置文件

cp /etc/my.cnf /mysqldb/3306/etc/

vim /mysqldb/3306/etc/my.cnf

[mysqld]

port=3306

datadir=/mysqldb/3306/data

socket=/mysqldb/3306/socket/mysql.sock

[mysqld_safe]

log-error=/mysqldb/3306/log/mariadb.log

pid-file=/mysqldb/3306/pid/mariadb.pid

#!includedir /etc/my.cnf.d

cp /mysqldb/3306/etc/my.cnf /mysqldb/3307/etc/my.cnf #复制配置文件到3307和3308中

cp /mysqldb/3306/etc/my.cnf /mysqldb/3308/etc/my.cnf

vim /mysqldb/3307/etc/my.cnf

:%s/3306/3307/ #将所有端口号从3306替换为3307

:wq

vim /mysqldb/3308/etc/my.cnf

:%s/3306/3308/ #将所有端口号从3306替换为3308

:wq

(5) 准备服务脚本

这里准备了一个服务脚本,粘到一个空文件里,并命名为mysqld:

#!/bin/bash#FileName: mysqldport=3306mysql_user="root"mysql_pwd=""cmd_path="/usr/bin"mysql_basedir="/mysqldb"mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock" function_start_mysql(){    if [ ! -e "$mysql_sock" ];then      printf "Starting MySQL...\n"      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &    else      printf "MySQL is running...\n"      exit    fi}  function_stop_mysql(){    if [ ! -e "$mysql_sock" ];then       printf "MySQL is stopped...\n"       exit    else       printf "Stoping MySQL...\n"       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown   fi} function_restart_mysql(){    printf "Restarting MySQL...\n"    function_stop_mysql    sleep 2    function_start_mysql} case $1 instart)    function_start_mysql;;stop)    function_stop_mysql;;restart)    function_restart_mysql;;*)    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"esac #End of file

chmod 700 mysqld

cp mysqld /mysqldb/3306/

cp mysqld /mysqldb/3307/

cp mysqld /mysqldb/3308/

#修改各实例配置文件的端口号

vim /mysqldb/3306/mysqld

vim /mysqldb/3307/mysqld

vim /mysqldb/3308/mysqld

(6) 启动三个实例

/mysqldb/3306/mysqld start

/mysqldb/3307/mysqld start

/mysqldb/3308/mysqld start

(7) 连接三个实例

mysql -S /mysqldb/3306/socket/mysql.sock

mysql -S /mysqldb/3307/socket/mysql.sock

mysql -S /mysqldb/3308/socket/mysql.sock


准备 文件 程序 实例 配置 二进制 编译 三个 数据 服务 版本 目录 脚本 口号 数据库 机器 源码 环境 管理 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微信小程序连接网络数据库 MFCDLL连接不上数据库 山西省网络安全职业技能大赛决赛 软件开发部署项目流程 阳江自主可控软件开发市价 平顶山市互联网科技园 数据库dlookup怎么用 计算机的网络技术好找工作吗 专科自学软件开发 十进制网络技术应用 康海串口服务器nc900 物联网网络技术主要学什么 根服务器与中国 广州企业展示厅分布式服务器 新建数据库怎么装 通信网络安全的心得 dns服务器存储什么 香港 软件开发合同模板 数据库表中是否为空啥意思 软件开发的生产成本是多少 利用网络技术开展教研工作 戴尔服务器显示几秒就黑屏 国家网络安全人才与创新基地面积 杭州游戏软件开发公司有哪些 数据库期末练习题 网约车抢单神器软件开发 贵州网络技术应用考试 广州前端软件开发要多少钱 烟草县局网络安全自查报告 我局强化网络安全管理制度
0