MySQL——MariaDB搭建

yum安装MariaDB

搭建好yum源

yum -y install mariadb-server

systemctl start mariadb

完成

二进制安装

centos7.4安装MariaDB10.2.15版本

一、检查环境

iptables

selinux

卸载系统自带MariaDB

rpm -qa |grep mariadb-server

下载二进制包

wget https://downloads.mariadb.org/mariadb/10.2.15/mariadb-10.2.15-linux-x86_64.tar.gz

或者用浏览器下载

二、

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

创建数据库路径

tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/

创建软连接

cd /usr/local/

ln -s mariadb-10.2.15-linux-x86_64/ mysql

更改连接目录的属主属组

chown -R root:root mysql/

添加环境变量

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

创建逻辑分区

pvcreate /dev/sdb

vgcreate vg0 /dev/sdb

lvcreate -n lv_mysql -l 100%FREE vg0

格式化

mkfs.xfs /dev/vg0/lv_mysql

创建 MariaDB的安装路径

mkdir /app

挂载

vim /etc/fstab

UUID="7ab73b89-485f-4e73-8d33-34f4a9691250" /app xfs defaults 0 0

mkdir /app/mysqldb

生成数据库文件

cd /usr/local/mysql

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

复制配置文件模板

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

修改配置文件

vim /etc/my.cnf

datadir = /app/mysqldb

添加权限

setfacl -R -m u:mysql:rwx /usr/local/mysql/

设置启动程序

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

chkconfig --add mysqld

启动

service mysqld start

源码编译安装

下载安装包

wget https://downloads.mariadb.org/mariadb/10.2.15/mariadb-10.2.15.tar.gz

或用浏览器下载

安装依赖环境

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

准备用户和数据目录

mkdir /data

useradd –r –s /bin/false –m –d /data/mysqldb/ mysql

tar xvf mariadb-10.2.15.tar.gz

编译安装

cd mariadb-10.2.15/

编译选项

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 -j 4 && make install

配置环境变量

生成库文件

scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql --basedir=/app/mysql

配置文件

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

vim /etc/my.cnf

datadir = /data/mysqldb

启动脚本

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

chkconfig --add mysqld && service mysqld start

启动文件失败,没有权限设置一下权限

setfacl -R -m u:mysql:rwx /app/mysql/

MariaDB多实例

yum -y install mariadb-server

规划有三个实例端口号分别为3306,3307,3308

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

chown -R mysql:mysql /mysqldb/

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

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

vim /mysqldb/3306/etc/my.cnf

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

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

vim /mysqldb/3307/etc/my.cnf

vim /mysqldb/3308/etc/my.cnf

3308做同样操作

创建三个启动文件

#!/bin/bash

port=3306

mysql_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 in

start)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;

*)

printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"

esac

3307和3308启动文件改下端口号即可

设置权限

chmod 700 /mysqldb/3306/mysqld

chmod 700 /mysqldb/3307/mysqld

chmod 700 /mysqldb/3308/mysqld

确定原来安装的服务以及关闭

启动服务

还有一种启动服务的方法,不用配置启动脚本

mysqld_safe --defaults-file=/mysqldb/3306/etc/my.cnf --user=mysql &

mysqld_safe --defaults-file=/mysqldb/3307/etc/my.cnf --user=mysql &

mysqld_safe --defaults-file=/mysqldb/3308/etc/my.cnf --user=mysql &

测试使用

二进制编译安装脚本(脚本和安装包要放在同级目录下)

#!/bin/bash

#

#********************************************************************

#Author: su_cho

#QQ: bugei

#Date: 2018-06-05

#FileName: /data/mariadb.sh

#URL: http://www.magedu.com

#Description: The test script

#Copyright (C): 2018 All rights reserved

#********************************************************************

read -p "please input a install_path:" mysql

read -p "please input a datadir_path:" datadir

rpm -qa |grep mariadb-server || yum -y remove mariadb*

getent passwd mysql && userdel -r mysql &>/dev/null

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

tar xf mariadb-* -C $mysql

cd $mysql

ln -s mariadb* mysql && chown -R root:root mysql/

echo "export PATH=$mysql/mysql/bin:\$PATH" >/etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

mkdir $datadir/mysqldb && cd $mysql/mysql

scripts/mysql_install_db --datadir=$datadir/mysqldb --user=mysql &>/dev/null

[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak

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

sed -i "/\[mysqld\]/adatadir=$datadir/mysqldb" /etc/my.cnf

setfacl -R -m u:mysql:rwx /usr/local/mysql/

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

chkconfig --add mysqld && service mysqld start

猜你喜欢

转载自blog.csdn.net/qq_35242906/article/details/80581631