码迷,mamicode.com
首页 > 数据库 > 详细

mariadb10.2 多实例

时间:2017-09-29 19:35:13      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:mariadb

  1. 用mariadb官方源下载mariadb。 

    [root@business-backup ~]# vim /etc/yum.repos.d/mariadb.repo     
    
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.2/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

      然是用yum下载mariadb: 

        yum install MariaDB-server MariaDB-client -y

  2.创建需要使用的data目录。我在这边创建了两个,一个用于3306端口,一个用于3307.   

   mkdir /data/newoa/data -pv
   mkdir /data/travel/data/ -pv
   chown -R mysql:mysql /data/

  3.初始化两个数据库:

   mysqld --initialize-insecure --datadir=/data/newoa/data --user=mysql
      mysqld --initialize-insecure --datadir=/data/travel/data/ --user=mysql

   4.初始化后再启动,启动成功后连接数据库并修改root@localhost用户的密码,然后退出。

       ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;

   5.修改两个配置文件,处理的newoa以及travel目录是自己创建:

[root@business-backup ~]# vim /etc/my.cnf.d/newoa/my.cnf 

[mysqld]
port=3306
datadir=/data/newoa/data
socket=/data/newoa/data/mysql.sock
server_id=201
log-bin=mysql-bin
binlog_format=mixed
relay-log = relay-bin
user=mysql
[mysqld_safe]
log-error=/data/newoa/data/mysqld.log
pid-file=/data/newoa/data/mysqld.pid

[root@business-backup ~]# vim /etc/my.cnf.d/travel/my.cnf 

[mysqld]
port=3307
datadir=/data/travel/data
socket=/data/travel/data/mysql.sock
server_id=207
log-bin=mysql-bin
binlog_format=mixed
relay-log = relay-bin
user=mysql
[mysqld_safe]
log-error=/data/travel/data/mysqld.log
pid-file=/data/travel/data/mysqld.pid

    6.创建启动脚本。

   以下是3306实例的管理脚本/etc/init.d/mysqld3306,内容修改自原有管理脚本/etc/init.d/mysqld。由于我是yum安装的,所以mysql的basedir为/usr,如果是编译安装或通用二进制安装,则对应修改下面脚本中的basedir变量。将此管理脚本复制为/etc/init.d/mysqld3307,再修改下port=3307即可作为3307实例的服务管理脚本。$datadir以及cnf的路径做修改。

[root@business-backup ~]# vim /etc/init.d/mysqld3306
#!/bin/sh
#
# mysqld    This shell script takes care of starting and stopping
#        the MySQL subsystem (mysqld).
#
# chkconfig: 345 64 36
# description:    MySQL database server.
# processname: mysqld

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

basedir=/usr
exec="$basedir/bin/mysqld_safe"
prog="mysqld"
port=3306
datadir="/data/newoa/data"
socketfile="$datadir/mysql.sock"
errlogfile="$datadir/mysqld.log"
mypidfile="$datadir/mysqld.pid"
cnf="/etc/my.cnf.d/newoa/my.cnf"

# Set timeouts here so they can be overridden from /etc/sysconfig/mysqld
STARTTIMEOUT=120
STOPTIMEOUT=60

# Set in /etc/sysconfig/mysqld, will be passed to mysqld_safe
MYSQLD_OPTS=

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/$prog

case $socketfile in
    /*) adminsocket="$socketfile" ;;
     *) adminsocket="$datadir/$socketfile" ;;
esac

start(){
    [ -x $exec ] || exit 5
    # check to see if it‘s already running
    RESPONSE=$(/usr/bin/mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping 2>&1)
    if [ $? = 0 ]; then
    # already running, do nothing
    action $"Starting $prog: " /bin/true
    ret=0
    elif echo "$RESPONSE" | grep -q "Access denied for user"
    then
    # already running, do nothing
    action $"Starting $prog: " /bin/true
    ret=0
    else
    # Now start service
    $exec $MYSQLD_OPTS --defaults-file="$cnf" --datadir="$datadir" --socket="$socketfile"         --pid-file="$mypidfile"         --basedir="$basedir" --user=mysql >/dev/null &
    safe_pid=$!
    # Spin for a maximum of N seconds waiting for the server to come up;
    # exit the loop immediately if mysqld_safe process disappears.
    # Rather than assuming we know a valid username, accept an "access
    # denied" response as meaning the server is functioning.
    ret=0
    TIMEOUT="$STARTTIMEOUT"
    while [ $TIMEOUT -gt 0 ]; do
        RESPONSE=$(/usr/bin/mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping 2>&1) && break
        echo "$RESPONSE" | grep -q "Access denied for user" && break
        if ! /bin/kill -0 $safe_pid 2>/dev/null; then
        echo "MySQL Daemon failed to start."
        ret=1
        break
        fi
        sleep 1
        let TIMEOUT=${TIMEOUT}-1
    done
    if [ $TIMEOUT -eq 0 ]; then
        echo "Timeout error occurred trying to start MySQL Daemon."
        ret=1
    fi
    if [ $ret -eq 0 ]; then
        action $"Starting $prog: " /bin/true
        touch $lockfile
    else
        action $"Starting $prog: " /bin/false
    fi
    fi
    return $ret
}

stop(){
    if [ ! -f "$mypidfile" ]; then
        # not running; per LSB standards this is "ok"
        action $"Stopping $prog: " /bin/true
        return 0
    fi
    MYSQLPID=`cat "$mypidfile"`
    if [ -n "$MYSQLPID" ]; then
        /bin/kill "$MYSQLPID" >/dev/null 2>&1
        ret=$?
        if [ $ret -eq 0 ]; then
        TIMEOUT="$STOPTIMEOUT"
        while [ $TIMEOUT -gt 0 ]; do
            /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
            sleep 1
            let TIMEOUT=${TIMEOUT}-1
        done
        if [ $TIMEOUT -eq 0 ]; then
            echo "Timeout error occurred trying to stop MySQL Daemon."
            ret=1
            action $"Stopping $prog: " /bin/false
        else
            rm -f $lockfile
            rm -f "$socketfile"
            action $"Stopping $prog: " /bin/true
        fi
        else
        action $"Stopping $prog: " /bin/false
        fi
    else
        # failed to read pidfile, probably insufficient permissions
        action $"Stopping $prog: " /bin/false
        ret=4
    fi
    return $ret
}

restart(){
    stop
    start
}

condrestart(){
    [ -e $lockfile ] && restart || :
}


# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status -p "$mypidfile" $prog
    ;;
  restart)
    restart
    ;;
  condrestart|try-restart)
    condrestart
    ;;
  reload)
    exit 3
    ;;
  force-reload)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
    exit 2
esac

exit $?

使用以下命令管理实例:

service mysqld3306 {start|stop|status|restart}
service mysqld3307 {start|stop|status|restart}

以上方法参考:https://www.centos.bz/2017/09/mysql%E3%80%81mariadb%E5%AE%89%E8%A3%85%E5%92%8C%E5%A4%9A%E5%AE%9E%E4%BE%8B%E9%85%8D%E7%BD%AE/




本文出自 “LinuxNew” 博客,请务必保留此出处http://jimchen.blog.51cto.com/10026955/1969770

mariadb10.2 多实例

标签:mariadb

原文地址:http://jimchen.blog.51cto.com/10026955/1969770

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!