Mysql数据库多实例配置的示例分析
admin
2023-05-26 08:21:42
0
二进制安装:
[root@lufengcentos ~]# mkdir /home/lufeng/tools -p
[root@lufengcentos ~]# cd /home/lufeng/tools   
[root@lufengcentos tools]# rz
[root@lufengcentos tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz
[root@lufengcentos tools]# mkdir -p /application/mysql-5.5.49
[root@lufengcentos tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49


创建mysql用户|组
[root@lufengcentos tools]# groupadd mysql
[root@lufengcentos tools]# useradd mysql -g mysql -s /sbin/nologin -M
[root@lufengcentos tools]# ln -s /application/mysql-5.5.49/ /application/mysql

root@lufengcentos mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe



创建多实例数据文件目录
[root@Mysql-server_2 ~]# mkdir -p /data/{3306,3307}/data
配置相应的配置文件:
[root@Mysql-server_2 ~]# cat /data/3306/my.cnf 
####################################################
[client]
#password       = your_password
port            = 3306
socket          = /data/3306/mysql.sock

[mysqld]
user            = mysql
port            = 3306
socket          = /data/3306/mysql.sock
basedir         = /application/mysql
datadir         = /data/3306/data
pid-file        = /data/3306/mysql.pid
relay-log       = /data/3306/relay-bin
relay-log-info-file = /data/3306/relay-log.info
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

server-id       = 1



[mysqldump]
quick
max_allowed_packet = 2M


[mysql]
no-auto-rehash

[mysql_safe]
log-error=/data/3306/mysql_lufeng3306.err
pid-file=/data/3306/mysqlf.pid


##############################################

[root@Mysql-server_2 ~]# cat /data/3307/my.cnf     
#############################################
[client]
#password       = your_password
port            = 3307
socket          = /data/3307/mysql.sock

[mysqld]
user            = mysql
port            = 3307
socket          = /data/3307/mysql.sock
basedir         = /application/mysql
datadir         = /data/3307/data
pid-file        = /data/3307/mysql.pid
relay-log       = /data/3307/relay-bin
relay-log-info-file = /data/3307/relay-log.info
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

server-id       = 2



[mysqldump]
quick
max_allowed_packet = 2M


[mysql]
no-auto-rehash

[mysql_safe]
log-error=/data/3307/mysql_lufeng3307.err
pid-file=/data/3307/mysqlf.pid
##############################################

创建启动文件


[root@Mysql-server_2 ~]# cat /data/3306/mysql
#!/bin/sh
################################
#mysql 3306 by lufeng @2017.4.3
################################
#int
port=3306
mysql_user="root"
mysql_pwd="199429"
CmdPath="/application/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 "MySQL is stopped...\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
        sleep 2
        function_start_mysql
}

case $1 in
start)
        function_start_mysql
;;
stop)
        function_stop_mysql
;;
restart)
        function_restart_mysql
;;
*)
        printf  "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac
##########################################################
[root@Mysql-server_2 ~]# cat /data/3307/mysql
#!/bin/sh
################################
#mysql 3307 by lufeng @2017.4.3
################################
#int
port=3307
mysql_user="root"
mysql_pwd="199429"
CmdPath="/application/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 "MySQL is stopped...\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
        sleep 2
        function_start_mysql
}

case $1 in
start)
        function_start_mysql
;;
stop)
        function_stop_mysql
;;
restart)
        function_restart_mysql
;;
*)
        printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac
#######################################################


配置多实例文件权限
[root@Mysql-server_2 ~]# chown -R mysql.mysql /data
[root@Mysql-server_2 ~]# find /data -name mysql|xargs chmod 700
[root@Mysql-server_2 ~]# find /data -name mysql -exec ls -l {} \; 
-rwx------ 1 mysql mysql 999 4月   3 13:33 /data/3306/mysql
-rwx------ 1 mysql mysql 1210 4月   3 13:35 /data/3307/mysql


全局变量:
[root@Mysql-server_2 ~]# ls /application/mysql/bin/mysql
/application/mysql/bin/mysql
[root@Mysql-server_2 ~]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
[root@Mysql-server_2 ~]# tail -1 /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@Mysql-server_2 ~]# source /etc/profile
[root@Mysql-server_2 ~]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

初始化数据库文件

[root@Mysql-server_2 scripts]# cd /application/mysql/scripts/
[root@Mysql-server_2 scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
[root@Mysql-server_2 scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql
Installing MySQL system tables...
170403 13:47:58 [Note] /application/mysql/bin/mysqld (mysqld 5.5.49) starting as process 2971 ...
OK
Filling help tables...
170403 13:47:59 [Note] /application/mysql/bin/mysqld (mysqld 5.5.49) starting as process 2980 ...
OK

============成功标志

启动命令:
[root@Mysql-server_2 ~]# /data/3306/mysql start
Starting MySQL...
 
[root@Mysql-server_2 ~]# /data/3307/mysql start
Starting MySQL...
[root@Mysql-server_2 ~]# netstat -lntup|grep mysql
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3638/mysqld         
tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      3962/mysqld   


配置开机自启动:
[root@Mysql-server_2 ~]# echo "mysql multi instances" >>/etc/rc.local
[root@Mysql-server_2 ~]# echo "/data/3306/mysql start" >>/etc/rc.local                      
[root@Mysql-server_2 ~]# echo "/data/3307/mysql start" >>/etc/rc.local 
[root@Mysql-server_2 ~]# tail -3 /etc/rc.local 
mysql multi instances
/data/3306/mysql start
/data/3307/mysql start


登录:[root@lufengcentos ~]# mysql -S /data/3306/mysql.sock 
安全配置:

[root@lufengcentos ~]# mysqladmin -u root -S /data/3307/mysql.sock password '199429'
[root@lufengcentos ~]# mysql -S /data/3306/mysql.sock -uroot -p
Enter password:

相关内容

热门资讯

赖清德抛0到18岁月发5000... 海峡导报综合报道 台湾地区领导人赖清德20日发表两周年就职演说,宣称台当局近日将提出所谓台湾人口对策...
与高市早苗保持距离,菲律宾总统... 菲律宾总统小马科斯近期在台湾问题上上演了一出极为滑稽前倨后恭变脸戏码。这位此前频频在台海和南海问题上...
是天“漏”了?气象部门解读广东... 5月15日以来,降雨强势来袭,覆盖湖北、海南、贵州、重庆、天津、湖南、河南、山东、广西、广东等十省区...
AI平台对“幻觉”现象的义务及... AI广泛使用,在信息收集分析、工作效率提升、思维能力拓展、视野开阔等方面给日常生产、生活不断带来便利...
北京无限迭代与腾讯云和中国电信... 近日,由深圳市工业和信息化局、深圳市人工智能产业办公室指导,深圳市人工智能行业协会与深圳会展中心管理...
蔡壁如宣布参选彰化县长,黄国昌... 日前,蔡壁如建置LINE群组,发布民调显示她超越国民党征召县长参选人魏平政。她也对外说她很少来彰化,...
郑丽文连续炮轰赖清德30分钟:... 据台湾《中时新闻网》报道,针对赖清德20日发表的“520”讲话及媒体提问,中国国民党主席郑丽文在中常...
盒马误将水仙当百合配送,致顾客... 近日,国家企业信用信息公示系统公示北京市朝阳区市场监督管理局行政处罚决定。针对今年1月盒马门店“误将...
最高法院拉偏架,共和党靠重划选... 近日,围绕国会选区重划问题,美国两党的斗争日趋激烈。4月,弗吉尼亚州以选民公投的方式通过了有利于民主...
电打火方太燃气灶不通电原因有哪... 电打火方太燃气灶不通电原因有哪些首先,先检查燃气灶里是否还有煤气。如果没有煤气,必须立即给燃气灶添加...