千家信息网

mysql多实例安装

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,多实例安装,同时开启多个不同的服务器端口3306 3307大公司安装数据库一般编译安装,并且会在优化之后做成rpm包,以便统一使用安装好mysql,如果以前的单实例mysql有开启执行pkill my
千家信息网最后更新 2026年10月31日mysql多实例安装

多实例安装,同时开启多个不同的服务器端口3306 3307

大公司安装数据库一般编译安装,并且会在优化之后做成rpm包,以便统一使用

安装好mysql,如果以前的单实例mysql有开启执行

pkill mysqld

rm -f /etc/init.d/mysqld

然后做多实例安装,这里mysql安装目录/application/mysql

mkdir -p /data/{3306,3307}/data

tree /data/

ll /application/mysql/support-files/ #mysql默认为用户提供的多个配置文件模板my*.conf

vim /data/3306/my.cnf

[client]

port = 3306

socket = /data/3306/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

user = mysql

port = 3306

socket = /data/3306/mysql.sock

basedir = /application/mysql

datadir = /data/3306/data

open_files_limit = 1024

back_log = 600

max_connections = 800

max_connect_errors = 3000

table_cache = 614

external-locking = FALSE

max_allowed_packet =8M

sort_buffer_size = 1M

join_buffer_size = 1M

thread_cache_size = 100

thread_concurrency = 2

query_cache_size = 2M

query_cache_limit = 1M

query_cache_min_res_unit = 2k

#default_table_type = InnoDB

thread_stack = 192K

transaction_isolation = READ-COMMITTED

tmp_table_size = 2M

max_heap_table_size = 2M

long_query_time = 1

pid-file = /data/3306/mysql.pid

relay-log = /data/3306/relay-bin

relay-log-info-file = /data/3306/relay-log.info

binlog_cache_size = 1M

max_binlog_cache_size = 1M

max_binlog_size = 2M

key_buffer_size = 16M

read_buffer_size = 1M

read_rnd_buffer_size = 1M

bulk_insert_buffer_size = 1M

lower_case_table_names = 1

skip-name-resolve

slave-skip-errors = 1032,1062

replicate-ignore-db=mysql

server-id = 1

innodb_additional_mem_pool_size = 4M

innodb_buffer_pool_size = 32M

innodb_data_file_path = ibdata1:128M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 4M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0

[mysqldump]

quick

max_allowed_packet = 2M

[mysqld_safe]

log-error=/data/3306/mysql_3306.err

pid-file=/data/3306/mysqld.pid

修改目录,改成你的mysql安装目录

sed -i "s#/application/mysql#/usr/local/mysql#g" /data/3306/my.cnf


vim /data /3307/my.cnf

[client]

port = 3307

socket = /data/3307/mysql.sock


[mysql]

no-auto-rehash


[mysqld]

user = mysql

port = 3307

socket = /data/3307/mysql.sock

basedir = /application/mysql

datadir = /data/3307/data

open_files_limit = 1024

back_log = 600

max_connections = 800

max_connect_errors = 3000

table_cache = 614

external-locking = FALSE

max_allowed_packet =8M

sort_buffer_size = 1M

join_buffer_size = 1M

thread_cache_size = 100

thread_concurrency = 2

query_cache_size = 2M

query_cache_limit = 1M

query_cache_min_res_unit = 2k

#default_table_type = InnoDB

thread_stack = 192K

transaction_isolation = READ-COMMITTED

tmp_table_size = 2M

max_heap_table_size = 2M

long_query_time = 1

pid-file = /data/3307/mysql.pid

relay-log = /data/3307/relay-bin

relay-log-info-file = /data/3307/relay-log.info

binlog_cache_size = 1M

max_binlog_cache_size = 1M

max_binlog_size = 2M

key_buffer_size = 16M

read_buffer_size = 1M

read_rnd_buffer_size = 1M

bulk_insert_buffer_size = 1M

lower_case_table_names = 1

skip-name-resolve

slave-skip-errors = 1032,1062

replicate-ignore-db=mysql

server-id = 3

innodb_additional_mem_pool_size = 4M

innodb_buffer_pool_size = 32M

innodb_data_file_path = ibdata1:128M:autoextend

innodb_file_io_threads = 4

innodb_thread_concurrency = 8

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 4M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_file_per_table = 0

[mysqldump]

quick

max_allowed_packet = 2M

[mysqld_safe]

log-error=/data/3307/mysql_3307.err

pid-file=/data/3307/mysqld.pid

修改目录,改成你的mysql安装目录

sed -i "s#/application/mysql#/usr/local/mysql#g" /data/3307/my.cnf


编辑mysql启动脚本

vim /data/3306/mysql

#!/bin/sh

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

#this scripts is created by jie at 2017-06-20

#init

port=3306

mysql_user="root"

mysql_pwd="qwe123" #<==这里和数据库密码一致

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

修改目录sed -i "s#/application/mysql#/usr/local/mysql#g" /data/3306/mysql


vim /data/3307/mysql

#!/bin/sh

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

#this scripts is created by jie at 2017-06-20

#init

port=3307

mysql_user="root"

mysql_pwd="qwe123" #<==这里和数据库密码一致

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

修改目录sed -i "s#/application/mysql#/usr/local/mysql#g" /data/3307/mysql

[root@*** data]# tree /data/

/data/

├── 3306

│ ├── data

│ ├── my.cnf

│ └── mysql

└── 3307

├── data

├── my.cnf

└── mysql

多实例启动文件中,启动mysql不同实例服务,所执行的命令实质是有区别的

mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &

mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null &


停止mysql不同实例服务的实质命令

mysqladmin -u root -pqwe123 -S /data/3306/mysql.sock shutdown

mysqladmin -u root -pqwe123 -S /data/3307/mysql.sock shutdown


授权chown -R mysql.mysql /data

find /data -name mysql|xargs ls -l

find /data -name mysql|xargs chmod 700

find /data -name mysql -exec ls -l {} \;根上面那个效果一样


ls /application/mysql/bin/mysql

echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile #把mysql安装目录bin定义到环境变量

[root@web1 ~]# tail -1 /etc/profile

export PATH=/application/mysql/bin:$PATH

source /etc/profile

[root@web1 ~]# echo $PATH

/application/mysql/bin:/application/mysql/bin:/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

也可以不设置环境变量,设置软连接

ln -s /application/mysql/bin/* /usr/local/sbin/

cd /application/mysql/scripts

初始化数据库

./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql

./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql

看到如下显示成功

Installing MySQL system tables...

170620 12:43:43 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.5.48-log) starting as process 29870 ...

OK

Filling help tables...

170620 12:43:43 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.5.48-log) starting as process 29877 ...

OK

查看目录tree /data


启动多实例数据库

/data/3306/mysql start

/data/3307/mysql start

echo "/data/3306/mysql start" >>/etc/rc.local #加入开机启动

echo "/data/3307/mysql start" >>/etc/rc.local

mysql -S /data/3306/mysql.sock #登入数据库无密码

mysql -S /data/3307/mysql.sock

直接root身份进来

设置密码

mysqladmin -u root -S /data/3306/mysql.sock password 'qwe123'

mysql -uroot -pqwe123 -S /data/3306/mysql.sock

mysqladmin -u root -S /data/3307/mysql.sock password 'qwe123'

mysql -uroot -pqwe123 -S /data/3307/mysql.sock

小贴士:因为mysql有密码,被其他用户看到会很不安全,所以把权限改为700,属组root

find /data -type f -name "mysql" -exec chmod 700 {} \;

find /data -type f -name "mysql" -exec chown root.root {} \;

禁止使用pkill、kill -9、killall -9等命令强制杀死数据库,这会引起无法启动故障。


目录 实例 数据 数据库 密码 不同 命令 服务 一致 变量 多个 实质 文件 环境 用户 安全 成功 公司 同时 故障 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 互联网 科技 互联网科技排名 深圳齐家互联网科技 易通互联网络科技有限公司 郑州华宇互联网科技 安控科技rtu产品工业互联网 新华互联网科技2019 互联网科技热点资讯 福州新华互联网科技学校 知乎 互联网5g黑科技有哪些 宜昌元轩互联网科技有限公司 本届互联网大会上的黑科技 陕西云淼互联网科技公司 2021世界互联网领先科技成果发布 萌小萌互联网科技河南有限公司 福建互联网展示科技馆设计 北京天晋互联网科技有限公司 互联网对科技影响 株洲百竞科技的互联网营销顾问 广州淘业互联网络科技 科技互联网技术 苏州大垚互联网科技 欧洲十大科技互联网公司 昭通互联网科技选哪家 互联网科技公司营业执照怎么办理 产业互联网科技服务公司 工业互联网科技创业 长沙渺峰互联网科技有限公司 株洲百竞科技的互联网营销顾问
0