基于源码编译安装mariadb实现多实例(代码片段)

author author     2022-12-06     532

关键词:

准备环境:

CentOS7.6
mariadb-10.2.23.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

准备用户和数据目录

useradd –r –s /sbin/nologin –d /data/mysql/ mysql
技术图片

mkdir   /data/mysql 
chown  mysql.mysql  /data/mysql 
tar xvf   mariadb-10.2.18.tar.gz  

技术图片

编译安装

cd mariadb-10.2.23/ 
cmake . \ 
-DCMAKE_INSTALL_PREFIX=/app/mysql \     指定安装目录  
-DMYSQL_DATADIR=/data/mysql/ \        指定mysql数据目录
-DSYSCONFDIR=/etc/mysql \             指定配置文件的目录
-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=/data/mysql/mysql.sock \    指定socket文件
-DDEFAULT_CHARSET=utf8 \                   指定字符集类型
-DDEFAULT_COLLATION=utf8_general_ci  

make && make install

提示:如果出错,执行rm -f CMakeCache.txt

安装

创建多实例的目录结构

mkdir mysql/9527,9528,9529/etc,bin,socket,data,log,pid -pv
技术图片

将所有者和所属则设置为mysql

chown -R mysql.mysql /opt/mysql/
技术图片

生成数据库文件

cd /app/mysql
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9527/data/ 
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9528/data/ 
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9529/data/
将生成的数据库文件存放到指定的位置

创建配置文件

cp /etc/my.cnf /opt/mysql/9527/etc/
cp /etc/my.cnf /opt/mysql/9528/etc/
cp /etc/my.cnf /opt/mysql/9529/etc/

编辑配置文件

[mysqld]
port=9527   指定端口号
datadir=/opt/mysql/9527/data    指定本端口号的数据库文件
socket=/opt/mysql/9527/socket/mysql.sock    指定本端口号的socket套接字
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#Settings user and group are ignored when systemd is used.
#If you need to run mysqld under a different user or group,
#customize your systemd unit file for mariadb according to the
#instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/opt/mysql/9527/log/mariadb.log    将日志文件存放到指定目录
pid-file=/opt/mysql/9527/pid/mariadb.pid      将pid文件存放到指定目录

#include all files from the config directory    

#!includedir /etc/my.cnf.d    原本是没有注释的,现在加上注释,因为他包含的是/etc/my.cnf.d目录下的文件,我们不需要

将三个实例只要稍微修改即可

创建脚本

#!/bin/bash
#chkconfig: 345 80 2
port=9527          端口号
mysql_user="root"     指定数据库用户
mysql_pwd=""        指定数据库的密码
cmd_path="/app/mysql/bin"     指定命令路径
mysql_basedir="/opt/mysql"    指定数据库基本目录
mysql_sock="$mysql_basedir/$port/socket/mysql.sock"     指定本端口启动的socket文件

function_start_mysql()       启动函数

    if [ ! -e "$mysql_sock" ];then          检查socket文件
      printf "Starting MySQL...\n"
      $cmd_path/mysqld_safe --defaults-file=$mysql_basedir/$port/etc/my.cnf  &> /dev/null  &   mysql启动服务用的是mysqld_safe命令
    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

启动服务

/opt/mysql/9527/bin/mysqld start     可以考虑定义为别名
echo ‘PATH=/app/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh    添加PATH路径
. /etc/profile.d/mysql.sh    生效PATH
mysql -uroot -P9527 -S /opt/mysql/9527/socket/mysql.sock   进入mysql数据库,需要指定socket路径

完成

基于二进制安装的mariadb实现多实例(代码片段)

基于二进制安装的mariadb实现多实例 1、mariadb版本:10.2.23 2、二进制安装mariadb的shell脚本#!/bin/bashidmysql&>/dev/nullif[`echo$?`-ne0];thenuserdel-rmysql&>/dev/nulluseradd-r-u336-s/sbin/nologin-d/data/m 查看详情

二进制安装mariadb(代码片段)

第一个实验:实现二进制安装mariadb用脚本或ansible的role实现我们先手动执行一遍,能够更好的了解其流程第一步:将我们下载的mariadb二进制包解压由于我们下载的是二进制的程序包,所以,源码编译的步骤已经有人替我们做了... 查看详情

mysql的编译安装及多实例配置总结(代码片段)

编译安装MySQL+多实例编译安装MySQL编译环境MySQL版本CentOS7.6mariadb-10.2.23一、安装编译所需要的包yuminstallbisonbison-develzlib-devellibcurl-devellibarchive-develboostdevelgccgcc-c++cmakencurses-develgnutls-devellibxml2-developen 查看详情

linux之ansible安装多实例mariadb(代码片段)

Ansible安装多实例mariadb10.2.23堡垒机配置root家目录下放置mariadb二进制包[MonApr2919:52[email protected]~]#ls-rw-r--r--1rootroot456950538Apr2608:16mariadb-10.2.23-linux-x86_64.tar.gz在/data目录下创建ansible目录,内部创建roles文件夹[ 查看详情

编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的lamp架构(代码片段)

...操作系统描述10.0.0.7CentOS-7.9httpd+php(fastcgi模式)10.0.0.17MariaDB-10.4.22(通用二进制格式)mariadb服务器软件版本:apr-1.7.0.tar.bz2apr-util-1.6.1.tar.bz2httpd-2.4.46.tar.bz2php-7.4.28.tar.gzwordpress-5.4.1-zh_CN.tar.gzDiscuz_X3.4_SC_UTF8_20210630.zip实... 查看详情

centos7实现基于源码编译安装lamp的wordpress应用

计划实现:host1安装httpd,phphost2安装mariadb 准备软件:apr-1.6.2.tar.gz      httpd-2.4.27.tar.bz2             &nbs 查看详情

centos7实现基于源码编译安装lamp的wordpress应用

计划:host1安装httpd,phphost2安装mariadb 准备软件:apr-1.6.2.tar.gz      httpd-2.4.27.tar.bz2               查看详情

实验:实现多实例数据库的create和altercreate表(代码片段)

...提供服务时,就感觉是三个mysql服务器一样。(此实验与mariadb的版本无关)1、安装mariadb,[[email protected]~]#yuminstallmariadbLoadedplugins:fastestmirror,langpacksLoadingmirrorspeedsfromcachedhostfileInstalled:mariadb.x86_641:5.5.60-1.el7_5Complete![[email pr... 查看详情

实验:基于yum安装的多实例(代码片段)

实验:基于YUM安装的多实例1.安装mariadbyuminstallmariadb2.创建多实例对应的目录结构mkdir/mysql/3306,3307,3308/data,,socket,log,bin,pid-pvchown-Rmysql.mysql/mysql3.创建多实例的数据库文件mysql_install_db--datadir=/mysql/3306/data/--user 查看详情

centos6.9基于fpm模式编译安装实现lamp应用wordpress(代码片段)

**准备工作:1LinuxCentos6.92php-7.2.1.tar.bz23apr-1.6.3.tar.bz24apr-util-1.6.1.tar.bz25httpd-2.4.29.tar.bz26phpMyAdmin-4.0.10.20-all-languages.zip7wordpress-4.9.1-zh_CN.tar.gz8xcache-3.2.0.tar.bz29mariadb- 查看详情

一键编译安装lamp(代码片段)

...1.7.0.tar.gz,apr-util-1.6.1.tar.gz,httpd-2.4.39.tar.bz所有源码包mysql:mariadb-10.2.23.tar.gz源码包php:php-7.3.5tar.bz2源码包以上所有源码包存,以及一键安装脚本存放在root家目录下,运行一键安装脚本。脚本运行完毕,使用浏览器访问测试页一键... 查看详情

centos7源码安装mariadb(代码片段)

...,下载并解压安装包到指定目录下载地址:https://downloads.mariadb.org/可根据需要下载不同的软件版本tarxfmariadb-5.5.31-linux-x86_64.tar.gz-C/usr/local/2,创建mysql组和用户groupadd-r-g306mysqluseradd-r-g306-u306–d/data/mysqlmysql3,进入到解压目录中,... 查看详情

zabbix-4.0编译安装(代码片段)

系统环境OS:centos7.5software:zabbix4.0LTSDBSever:MariaDB-10.2.15一、需要先把数据库装上,这里用到的是mariadb二进制包安装1、下载二进制包,官网的下载路径:wgethttp://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.15/bintar-linux-x86_64/mariadb-10.2. 查看详情

剧本---ansible实现自动化安装mariadb(代码片段)

创建剧本构建思路,生成目录树[[email protected]ansible]#tree.├──ansible.cfg├──hostname.yml├──hosts├──mariadb.yml├──role_mariadb.retry├──role_mariadb_threng.yml├──role_mariadb.yml└──roles├──mariadb│??├──files│?? 查看详情

mariadb基于mha和galeracluster实现高可用(代码片段)

MySQL高可用MMM:MySQL主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysqkreplication进行监控和故障迁移,并能管理mysqlmaster-master复制的配置(同一时间只有一个节点是可写的)MHA:对主节点进行监控,可实现自动故障... 查看详情

mysql-密码(代码片段)

密码修改密码mysqladmin-uroot-pcentospassword12345678注意:如果是基于编译安装实现多实例,可能会报错,error:‘Can‘tconnecttolocalMySQLserverthroughsocket‘/data/mysql/mysql.sock‘(40)‘Checkthatmysqldisrunningandthatthesocket:‘/data/mys 查看详情

centos7.4编译安装lamp(代码片段)

centos7.4编译安装lamplamp简介Linux+Apache+Mysql/MariaDB+PHP一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。apac... 查看详情

mysql5.7基于二进制编译多实例安装

mysql5.7基于二进制编译多实例安装cd/usr/local/src/wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gztar-zxvfmysql-5.7.22-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.22-linux- 查看详情