关闭

Mysql数据库单机多实例部署手记

发表于:2015-9-11 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:唐卓章    来源:51Testing软件测试网采编

  最近的研发机器需要部署多个环境,包括数据库。为了管理方便考虑将mysql数据库进行隔离,即采用单机多实例部署的方式。
  找了会资料发现用的人也不是太多,一般的生产环境为了充分发挥机器性能都是单机单实例运行,再进行一系列的配置调优..
  多实例的运行机制
  通过mysqld_multi启动多个mysqld实例进程,每个实例拥有独立的配置、监听端口、数据库文件、临时文件(日志、socket)等
  实现步骤
  1  初始化数据目录
  mysql_install_db --datadir=/web/mysql/prd/data --user=mysql
  mysql_install_db --datadir=/web/mysql/dev/data --user=mysql
  //当然数据目录也可以拷贝已有的
  2 配置多实例文件
multi.cnf:
#multi server
[mysqld_multi]
mysqld = /home/root/local/mysql/bin/mysqld_safe
mysqladmin = /home/root/local/mysql/bin/mysqladmin
#mysqld_multi log
log = /web/mysql/multi.log
#用户名密码,用以mysqld_multi操作时透传给mysqladmin(初始化时一般为匿名访问,注释掉即可)
#user=root
#password=
#dev server
[mysqld3306]
user = mysql
port = 3306
socket = /web/mysql/dev/var/mysql.sock
pid-file = /web/mysql/dev/var/mysqld.pid
log-error = /web/mysql/dev/var/mysqld.log
datadir = /web/mysql/dev/data
max_connections = 200
default-storage-engine = innodb
character_set_server = utf8mb4
#prd server
[mysqld3307]
user = mysql
port = 3811
socket = /web/mysql/prd/var/mysql.sock
pid-file = /web/mysql/prd/var/mysqld.pid
log-error = /web/mysql/prd/var/mysqld.log
datadir = /web/mysql/prd/data
max_connections = 1000
default-storage-engine = innodb
character_set_server = utf8mb4
  3 启动多实例
  mysqld_multi --defaults-extra-file=multi.cnf start
  4  管理多实例
  检查运行情况
  mysqld_multi --defaults-extra-file=multi.cnf report
  当然也可以通过网络端口检查:
  netstat -ntlp tcp
  tcp 0 0 :::3306 ::: * LISTEN 3919/mysqld
  tcp 0 0 :::3307 ::: * LISTEN 15027/mysqld
  停止多实例:
  mysqld_multi --defaults-extra-file=multi.cnf stop
  修改密码(针对某个实例):
  mysqladmin -uroot -S /web/mysql/prd/var/mysql.sock password 123456
  连接某个实例:
  mysql -uroot -S /web/mysql/prd/var/mysql.sock -p
  常见问题
  mysqld_multi执行之后无法启动实例,执行report发现实例没有运行。
  原因:mysql实例目录缺少读写权限,将多实例的数据目录设置为mysql:mysql的用户组,并支持读写权限;
  启动实例之后无法停止,mysqld_multi stop不生效
  原因: mysqld实例的数据库管理员密码与mysqld_multi透传的管理员密码不一致(见multi.conf),通过修改密码可解决。
  TIPS
  msyqld_multi命令仅仅对配置文件做语法检查,排查问题时需结合multi.log(见配置文件),以及具体实例的错误日志进行;
  实例标号必须为整数,如msyqld3307中3307必须为数字标号;
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号