注意:请根据自己的实际情况进行相应的更改
D.1 多实例结构D.2 多实例安装D.2.1依赖包# yum install ncurses-devel -y # yum install libaio-devel -y D.2.2通过二进制方法安装mysql 注意:参考“mysql二进制包安装”这一章节
请查考MySQL系列之B------MySQL安装准备、MySQL系列之B------MySQL安装
D.2.3建立mysql账号# groupadd mysql # useradd -s /sbin/nologin -g mysql -Mmysql #注意:useradd命令参数简要说明 #1、-s /sbin/nologin 表示禁止该用户登录,加强安全 #2、-g 指定属于mysql组 #3、-M表示不创建用户家目录 D.2.4创建目录# mkdir -p /data/{3307,3308}/data 目录解析: /data 实例的总目录 /data/3307 3307实例的目录 /data/3308 3308实例的目录 /data/3307/data 3307实例的数据目录 /data/3308/data 3308实例的数据目录 注意:生产硬件配置:MEM 32g、双CPU8core、硬盘6*600g sas 15k/rpm 2-3个实例 D.2.5初始化# cd /mysql/mysql # scripts/mysql_install_db--basedir=/mysql --datadir=/data/3307/data --user=mysql # scripts/mysql_install_db--basedir=/mysql --datadir=/data/3308/data --user=mysql D.3 多实例配置文件1、3307配置文件/data/3307/ [client] port=3307 socket=/data/3307/mysql.sock prompt=\\u@hostname \\r:\\m:\\s-> [mysqld] basedir =/mysql datadir =/data/3307/data port =3307 server_id =2 socket =/data/3307/mysql.sock log-bin=/data/3307/mysql_bin binlog_format=mixed #binlog-do-db= #binlog-ignore-db= long_query_time=1 relay-log=/data/3307/relay_bin relay-log-info-file=/data/3307/relay_log.info sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/data/3307/mysql_err.log pid-file=/data/3307/mysql_pid.pid 2、3308配置文件/data/3308/ [client] port=3308 socket=/data/3308/mysql.sock prompt=\\u@hostname \\r:\\m:\\s-> [mysqld] basedir =/mysql datadir =/data/3308/data port =3308 server_id =3 socket =/data/3308/mysql.sock log-bin=/data/3308/mysql_bin binlog_format=mixed #binlog-do-db= #binlog-ignore-db= long_query_time=1 relay-log=/data/3308/relay_bin relay-log-info-file=/data/3308/relay_log.info sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/data/3308/mysql_err.log pid-file=/data/3308/mysql_pid.pid D.4 多实例启动文件D.4.1创建mysql文件在/data/3307中#!/bin/bash ############################################################ #this scripts is created by liuweixinat 2015-06-18 #liuweixin QQ:1433203077 ############################################################ #init port=3307 mysql_user="root" mysql_pwd="oracle" CmdPath="/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup function function_start_mysql() { if[ ! -e "$mysql_sock" ];then printf"Starting MySQL...\n" /bin/sh${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null & else printf"MySQL is running...\n" exit fi } #stop function() function_stop_mysql() { if[ ! -e "$mysql_sock" ];then printf"Stoping MySQL...\n" exit else printf "Stoping Mysql...\n" ${CmdPath}/mysqladmin-u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi } #restart function function_restart_mysql() { printf"Restarting MySQL...\n" function_stop_mysql sleep2 function_start_mysql } #function_kill_mysql() #{ # kill-9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}') # kill-9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}') #} case $1 in start) function_start_mysql;; stop) function_stop_mysql;; #kill) # function_kill_mysql;; restart) function_restart_mysql;; *) printf"Usage:/data/${port}/mysql {start|stop|restart}\n" esac D.4.2创建mysql文件在/data/3308中#!/bin/bash ############################################################ #this scripts is created by liuweixinat 2015-06-18 #liuweixin QQ:1433203077 ############################################################ #init port=3308 mysql_user="root" mysql_pwd="oracle" CmdPath="/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup function function_start_mysql() { if[ ! -e "$mysql_sock" ];then printf"Starting MySQL...\n" /bin/sh${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null & else printf"MySQL is running...\n" exit fi } #stop function() function_stop_mysql() { if[ ! -e "$mysql_sock" ];then printf"Stoping MySQL...\n" exit else printf "Stoping Mysql...\n" ${CmdPath}/mysqladmin-u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi } #restart function function_restart_mysql() { printf"Restarting MySQL...\n" function_stop_mysql sleep2 function_start_mysql } #function_kill_mysql() #{ # kill-9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}') # kill-9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}') #} case $1 in start) function_start_mysql;; stop) function_stop_mysql;; #kill) # function_kill_mysql;; restart) function_restart_mysql;; *) printf"Usage:/data/${port}/mysql {start|stop|restart}\n" esac D.5 启动多实例[iyunv@mysql03 mysql]# /data/3307/mysql start Starting MySQL... [iyunv@mysql03 mysql]# /data/3308/mysql start Starting MySQL... [iyunv@mysql03 mysql]# netstat -lnt 330 Active Internet connections (onlyservers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 :::3307 :::* LISTEN tcp 0 0 :::3308 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN D.6 登录多实例登录有两种方法: mysql -uroot -p -S/data/3307/mysql.sock mysql -h127.0.0.1 -uroot -p --port=330X 注意:如果指定socket文件,则不需要-h127.0.0.1或者-h localhost,同时,也不需要指定--port=330X端口号
|