广告
返回顶部
首页 > 资讯 > 数据库 >初识MariaDB之2——MariaDB多实例安装
  • 436
分享到

初识MariaDB之2——MariaDB多实例安装

2024-04-02 19:04:59 436人浏览 独家记忆
摘要

一、背景介绍MariaDB多实例就是在一台机器上开启多个不同的服务端口,运行多个Mysql服务进程,通过不同的Socket监听不同的服务端口来提供各自的、互不干涉的服务,各个实例可以根据不同的配置文件设置相

一、背景介绍

MariaDB多实例就是在一台机器上开启多个不同的服务端口,运行多个Mysql服务进程,通过不同的Socket监听不同的服务端口来提供各自的、互不干涉的服务,各个实例可以根据不同的配置文件设置相互隔离

二、操作步骤

1.安装MariaDB(略)

2.初始化数据库(以3306为例)

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/multidata/3306 --user=mysql

3.修改配置文件(以3306为例)

当有多台MariaDB服务器时server-id不能一样

初识MariaDB之2——MariaDB多实例安装初识MariaDB之2——MariaDB多实例安装

4.启动服务(以3306为例)

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/multidata/3306/my.cnf 2>&1 > /dev/null &

如果忘记密码,启动方式为:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/multidata/3307/my.cnf --skip-grant-tables 2>&1 > /dev/null &

此时要注意--defaults-file选项要放在--skip-grant-tables之前

5.登陆数据库(以3306为例)

/usr/local/mysql/bin/mysql -S /multidata/3306/mysql.sock

如果忘记密码,skip启动后以空密码登陆:

mysql -uroot -p -S /multidata/3307/mysql.sock

6.设置数据库root账户密码(以3306为例)

/usr/local/mysql/bin/mysqladmin -uroot passWord '123456' -S /multidata/3306/mysql.sock

如果是修改密码,命令为:

/usr/local/mysql/bin/mysqladmin -uroot -p123456 password 'new' -S /multidata/3306/mysql.sock

7.关闭服务(以3306为例)

mysqladmin -uroot -p123456 -S /multidata/3306/mysql.sock shutdown

三、编写启动脚本

为方便使用时启动和关闭,可以自己编写一个脚本并给与执行权限取代原有的mysqld执行文件,脚本内容如下:

#!/bin/bash

. /etc/init.d/functions

PORT=$2

USER=root

PASSWD=123456

MYSQLBIN='/usr/local/mysql/bin'

SOCKETFILE="/multidata/${PORT}/mysql.sock"

PIDFILE="/multidata/${PORT}/mysql.pid"

MYCNF="/multidata/${PORT}/my.cnf"

[[ $# -eq 2 ]] || {

   echo "Usage: $0 {start|stop|restart|reload} {PORT}"

   exit 1

}

mysql_start() {

   [[ -e "$SOCKETFILE" ]] && {

       action "MySQL port: $PORT IS already running" /bin/false

       exit 0

   } || {

       action "Starting MySQL...  please wait" /bin/true

       $MYSQLBIN/mysqld_safe --defaults-file=$MYCNF &> /dev/null &

   }

   [[ "$?" == "0" ]] && {

       action "MySQL has been Started" /bin/true

   } || {

       action "MySQL Started" /bin/false

   }

}

mysql_stop() {

   [[ ! -e "$SOCKETFILE" ]] && {

       action "MySQL port:$PORT was already down" /bin/false

   } || {

       $MYSQLBIN/mysqladmin -u $USER -p$PASSWD -S $SOCKETFILE shutdown &>/dev/null

   }

   [[ "$?" == 0 ]] && {

       action  "MySQL port:$PORT has been Stopped" /bin/true

   }

}

case "$1" in

'start')

   mysql_start

   ;;

'stop')

   mysql_stop

   ;;

'restart'|'reload')

   mysql_stop

   sleep 3

   mysql_start

   ;;

*)

   echo "Usage: $0 {start|stop|restart|reload} {PORT}"

esac

注意:该脚本中带数据库root账户的密码(2台服务器密码一样),所以在生产环境中建议将权限改为700以减小安全隐患

补充说明1:多个实例共用同一个my.cnf配置文件

在生产环境中建议将多个实例的配置文件分开,这样忘记密码时候便于指定配置文件通过skip-grant-tables选项找回。作为多实例的另一种方法,也可以使用同一个配置文件集中管理,以下在之前基础上创建3308,3309实例进行说明,步骤如下:

1.创建3308,3309的数据目录

mkdir -pv /unidata/{3308,3309}

chown -R mysql.mysql /unidata

cp mysqld_multi.server /etc/init.d/mysqld

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

2.初始化数据(以3308为例)

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/unidata/3308 --user=mysql

3.修改/etc/my.cnf配置文件

[mysqld_multi]

mysqld=/usr/local/mysql/bin/mysqld_safe

mysqladmin=/usr/local/mysql/bin/mysqladmin

log = /unidata/mysql_multi.log

user = root

#password =

如果该地方不是root用户,下面则需要在数据库为该用户添加shutdown权限,否则mysqld_multi将无法关闭实例

[mysqld3308]

socket=/unidata/3308/mysql.sock

port=3308

server-id=1

pid-file=/unidata/3308/mysql.pid

datadir=/unidata/3308

user=mysql #必须要指定1个用户,否则实例无法启动

[mysqld3309]

socket=/unidata/3309/mysql.sock

port=3309

server-id=2

pid-file=/unidata/3309/mysql.pid

datadir=/unidata/3309

user=mysql

注意:多个实例除了mysqld号不同外,每个实例内的pid、port、socket和server-id也不能相同

4.检测服务能否正常启动和关闭

cp /usr/local/mysql/bin/mysqld_multi /etc/init.d/mysqld_multi

/etc/init.d/mysqld_multi start 3308,3309

/etc/init.d/mysqld_multi report

初识MariaDB之2——MariaDB多实例安装初识MariaDB之2——MariaDB多实例安装

/etc/init.d/mysqld_multi stop 3308,3309

初识MariaDB之2——MariaDB多实例安装初识MariaDB之2——MariaDB多实例安装

补充说明2:查看数据库字符集

MariaDB在编译安装时可以指定默认字符集,查看数据库字符集命令:

show create database mysql \G

初识MariaDB之2——MariaDB多实例安装初识MariaDB之2——MariaDB多实例安装


您可能感兴趣的文档:

--结束END--

本文标题: 初识MariaDB之2——MariaDB多实例安装

本文链接: https://www.lsjlt.com/news/40828.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 初识MariaDB之2——MariaDB多实例安装
    一、背景介绍MariaDB多实例就是在一台机器上开启多个不同的服务端口,运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的、互不干涉的服务,各个实例可以根据不同的配置文件设置相...
    99+
    2022-10-18
  • 初识MariaDB之1——MariaDB的安装
    一、MariaDB介绍MariaDB是Mysql在被Oracle收购后由原作者重新开发的一种关系型数据库程序,由于是同一个作者,所以在操作上与Mysql十分类似,版本也是相互对应,如:MariaDB5.5对...
    99+
    2022-10-18
  • MariaDB三种方法安装及多实例实现
    本章内容Mariadb的三种安装方式:    1、程序包管理器管理的程序包    2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用...
    99+
    2022-10-18
  • 初识MariaDB之9——keepalive+GTID双主实现高可用
    一、背景介绍传统的主从复制架构下,尽管可以使用半同步的方式进行读写分离,但是主节点仍然存在单点隐患,在规模不大的情况下可以采用keepalive+双主的模式对主节点进行高可用保护,客户端通过VIP访问MyS...
    99+
    2022-10-18
  • mysql安装之多实例多配置文件安装
    一、多实例安装简介 所谓多实例安装其实是指在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务;多实例安装主要目的是为了有效...
    99+
    2020-05-22
    mysql安装之多实例多配置文件安装
  • Oracle DataBase单实例使用ASM案例(2)--Oracle 11g之GI安装
    Oracle DataBase单实例使用ASM案例(2)--Oracle 11g之GI安装系统环境:操作系统:RedHat EL5(64)Oracle 软件:Oracle 11gR2、Oracle GI&n...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作