在数据库服务器上,可以架构多个Mysql服务器,进行单机多实例的读写分离;

可以通过mysqld_multi来进行多实例的管理,mysqld_multi是用perl写的脚本,原理是通过mysql_admin来进行多个数据库的操作;多实例的配置文件也有点不同,可以看作是多个mysql配置的集合;mysqld_multi命令使用如下:

mysqld_multi report/start/stop

可以使用 mysqld_multi --example来查看配置文件的例子;也可以直接复制下来当作自己的配置;注意备份以前的配置;

mv /etc/my.cnf /etc/my.cnf.bak
mysqld_multi --example > /etc/my.cnf

按自己的需要修改配置文件,改成多个数据库;

[mysqld_multi]
mysqld     = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user       = multi_admin
password   = my_password [mysqld1]
socket     = /tmp/mysql1.sock
port       = 3306
pid-file   = /data2/mysql1/mysql.pid
datadir    = /data2/mysql1 [mysqld2]
socket     = /tmp/mysql2.sock
port       = 3307
pid-file   = /data2/mysql2/mysql.pid
datadir    = /data2//mysql2

这里多出了一个[mysqld_multi]的配置项,需要在每个数据库里配置一个multi_admin来管理mysql

下面新建数据库:

mysql_install_db --user=mysql --datadir=/data2/mysql1
mysql_install_db --user=mysql --datadir=/data2/mysql2

启动mysql服务器

mysqld_multi start 1,2

这个时候使用 mysqld_report来查看是否已启动是会失败的,因为还没有新建 multi_admin来查询状态;我们可以通过 netstat来查看端口

# netstat -tulnp | grep mysql
tcp        0      0 :::3306                     :::*                        LISTEN      716784/mysqld
tcp        0      0 :::3307                     :::*                        LISTEN      3669/mysqld
tcp        0      0 :::3317                     :::*                        LISTEN      714503/mysqld

可以看到3306和3307端口已经监听;同时目录下生成了相应的.socket文件;

下面我们可以连接mysql来配置multi_admin用户;由于有多个实例,连接需要使用socket连接

mysql -u root -S /tmp/mysql1.sock
grant shutdown on *.* to multi_admin@'localhost' identified by'my_password';
flush privileges;
quit

同样道理配置另一台3307;

也可以拷贝一份mysql来创建新的实例,这样里面的用户也会被拷贝。注意目录权限必须是mysql , chown -R mysql.mysql /data2/mysql2

下面可以使用

mysqld_multi --defaults-file=/etc/my.cnf start 启动全部实例

如果启动出错的话,可以到对应目录下查看日志文件,看哪里出错了。

使用mysqld_multi需要手动启动数据库,也可以加入开机启动项:

echo "mysqld_multi" >>  /etc/rc.local

mysql单机多实例的更多相关文章

  1. MySQL单机多实例安装并配置主从复制

    单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cn ...

  2. mysqld_multi部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...

  3. 多配置文件部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...

  4. mysql单机多实例配置

    Windows上配置多个mysql实例,主要改下配置文件即可,mysql目录如下: my2中主要改两个配置内容 datadir = D:/Program Files/Mysql/mysql-5.7.2 ...

  5. MySQL单机单实例安装脚本(转载)

    说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...

  6. MySQL单机单实例安装脚本

    说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...

  7. mysql 单机多实例配置

    如果你想在一台机器上进行主从配置实验,本篇可以帮助你实现愿望 [client] #password = your_password port = 3306 socket = /tmp/mysql.so ...

  8. mysql 单机多实例重启数据库服务

    1.# cat db.txtbackend 3310base 3320storage 3330payment 3340promotion 3350 2.# cat restart_mysql_slav ...

  9. 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装

    Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...

随机推荐

  1. C#调用MySQL数据库(使用MySql.Data.dll连接)mysql-connector-net-6.10.4.msi

    下载地址:http://dev.mysql.com/downloads/connector/net/ 安装指导 1.安装:mysql-connector-net-6.10.4.msi 其下载地址:ht ...

  2. C++ 纯虚方法

    1.纯虚方法解决什么样的问题,为什么要设计出纯虚方法? 考虑下面的需求,基类声明了一个方法,这个方法只针对具体的子类才有意义,比如Animal的Eat()方法,调用Animal的Eat方法是没有意义的 ...

  3. @TargetAPI + 版本判断实现高低API版本兼容

    安卓开发中,在低版本SDK使用高版本的API会报错.一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案:后者可以用如下技巧来实现. 步骤 S ...

  4. WIN10系统如何隐藏底部搜索框

    右击任务栏,搜索,可以切换三种模式,建议还是显示搜索图标,因为这个搜索还是能比较快速定位到系统功能的,只不过显示搜索框的话比较占地方,不方便

  5. 微软BI 之SSRS 系列 - 报表邮件订阅中 SMTP 服务器匿名访问与 Windows验证, 以及如何成功订阅报表的实例

    这篇文章源于在上一篇博文中有园友提出订阅 SSRS 报表时的一个问题,  于是就好好总结了一下,把有关 SSRS 报表订阅的要点和容易出现问题的地方写出来,希望对大家有所帮助! 参看上一篇博文 - S ...

  6. 微软BI 之SSRS 系列 - 如何实现报表导航 Navigation 和钻取 Drill Down 的效果

    开篇介绍 如何在 SSRS 报表中实现标签导航 Navigation 和向下钻取 Drill Down的效果? 如同下面这个例子一样 - 在页面第一次加载的时候,默认显示是全部地区的销售总和情况,上面 ...

  7. Spring MVC中Controller如何将数据返回给页面

    要实现Controller返回数据给页面,Spring MVC 提供了以下几种途径: ModelAndView:将视图和数据封装成ModelAndView对象,作为方法的返回值,数据最终会存到Http ...

  8. 【转】exec xargs的区别 另附eval命令介绍

    -exec:  对符合条件的文件执行所给的Linux 命令,执行exec后面的shell脚本.脚本中,{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在命令中还 ...

  9. 算法笔记_221:串的简单处理(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务.本题目即是要求程序对用户输入的串进行处理.具体规则如下:1. 把每个单词的首字母变为大 ...

  10. bash shell 获取当前正在执行脚本的绝对路径

    https://my.oschina.net/leejun2005/blog/150662 http://blog.csdn.net/10km/article/details/51906821 如题, ...