很多朋友都想在一台服务器上运行多个MySQL Instance,究竟怎么做呢?
首先要明晰几个原理,
简称为mysqld读取my.cnf的顺序:

第一搜,首先读取/etc/my.cnf,多实例这个配置文件不会存在。:-(
第二搜,$datadir/my.cnf,在data目录下寻找此配置文件。
第三搜,defaultfile=/path/my.cnf
通常写在命令行上,mysqld_safe defaultfile=/tmp/my.cnf &等执行。
第四搜,~/my.cnf
当前用户下的配置文件。

mysqld多进程运行的必要条件,就是pid文件,datadir,socket,port是独立分开的。
|
Variable_name | Value |
| datadir | /home/mysql/ |
| Variable_name | Value
|
| socket | /home/mysql/mysql.sock |
| Variable_name | Value |
|
pid_file | /home/mysql/mysql.pid |
| Variable_name | Value |
| port | 3306
|

单一版本实现多实例
#pwd
/usr/local/
#touch
my_multi.cnf
#cat my_multi.cnf
[mysqld_multi]
mysqld =
/usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root

[mysqld1]
socket = /tmp/mysql_3301.sock
port = 3301
pid-file =
/usr/local/mysql_3301/data/mysql_3301.pid
datadir =
/usr/local/mysql_3301/data/
log =
/usr/local/mysql_3301/data/mysql_3301.log
user = mysql

[mysqld2]
socket = /tmp/mysql_3302.sock
port = 3302
pid-file =
/usr/local/mysql_3302/data/mysql_3302.pid
datadir =
/usr/local/mysql_3302/data/
log =
/usr/local/mysql_3302/data/mysql_3302.log
user = mysql

启动mysqld 的两个实例

/usr/bin/mysqld_multi –config-file=./my_multi.cnf start 1,2

Starting mysqld daemon with databases from
/usr/local/mysql_3301/data/
Starting mysqld daemon with databases from
/usr/local/mysql_3302/data/

查看3301,3302端口是否被监听
# netstat -lt |grep 33
tcp 0 0
*:3301 *:* LISTEN
tcp 0 0 *:3302 *:* LISTEN

测试mysql是否可以连通

#pwd
/usr/local/
通过/tmp/mysql_3301.sock连接3001端口的mysqld
#
bin/mysql -u root -S /tmp/mysql_3301.sock -e “SELECT
@@VERSION;”
停止3001端口的mysqld
# /usr/bin/mysqld_multi
–config-file=./my_multi.cnf stop 1
STOPPING server from pid file
/usr/local/mysql_3301/data/mysql_3301.pid
091010 11:56:04 mysqld
ended
再次连接,系统会提示错误
# bin/mysql -u root -S
/tmp/mysql_3301.sock -e “SELECT @@VERSION;”
ERROR 2002 (HY000):
Can’t
connect to local MySQL server through socket ‘/tmp/mysql_3301.sock’
(2)
相同的步骤测试3002端口的mysqld,输出与上面相同。
# /usr/bin/mysql -u
root -S /tmp/mysql_3302.sock -e “SELECT @@VERSION;”
# /usr/bin/mysqld_multi
–config-file=./my_multi.cnf stop 2
# /usr/bin/mysql -u root -S
/tmp/mysql_3302.sock -e “SELECT @@VERSION;”

补充上两句:
[Nova@imdba.cn mysql]# cp
../mysql-5.0.67/support-files/my-large.cnf /etc/my.cnf
[Nova@imdba.cn mysql]#
cp ../mysql-5.0.67/support-files/mysql.server
/etc/rc.d/init.d/mysqld
[Nova@imdba.cn mysql]# chkconfig –add
mysql
[Nova@imdba.cn mysql]# chkconfig –level mysql 345 on
[Nova@imdba.cn
mysql]# chkconfig –list mysql

【转载】MySQL启多个实例的更多相关文章

  1. MySQL 启停过程了解一二

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 前言 你知道MySQL启停都做了些什么吗? 启动的时 ...

  2. mysql事务处理用法与实例详解

    来源:转载  MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berke ...

  3. MySQL主从备份配置实例

    转载自:https://www.cnblogs.com/ahaii/p/6307648.html MySQL主从备份配置实例 场景: 1.主服务器192.168.0.225.从服务器192.168.0 ...

  4. PHP+Mysql统计文件下载次数实例

    PHP+Mysql统计文件下载次数实例,实现的原理也很简单,是通过前台点击链接download.php传参id,来更新点击次数. 获取文件列表: <?php require 'conn.php' ...

  5. Mysql启停以及恢复备份恢复数据库

    1.mysql启停 进入cmd 输入如下命令 net stop mysql(自己起的mysql名称) -------停 net strat mysql   ---------------------- ...

  6. [转载]mysql的binlog安全删除

    [转载]mysql的binlog安全删除  理论上,应该在配置文件/etc/my.cnf中加上binlog过期时间的配置项,expire_logs_days = 10 但是如果没有加这一项,随着产生越 ...

  7. PHP连接局域网MYSQL数据库的简单实例

    PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...

  8. The MySQL C API 编程实例

    在网上找了一些MYSQL C API编程的文章,看了后认为还是写的不够充分,依据自己经验写了这篇<The MySQL C API 编程实例>,希望对须要调用到MYSQL的C的API的朋友有 ...

  9. MySQL体系结构及多实例

    MySQL客户端和服务器端模型 MySQL是一个典型C/S,服务器端与客户端两部分组成 服务器端程序  mysqld mysql自带的客户端(mysql mysqladmin  mysqldump等) ...

随机推荐

  1. aspNet各种模块介绍

    For browsers that do not support HTML5, you can use Modernizr. Modernizr is an open-source JavaScrip ...

  2. C#中在AxWebBrowser控件注入JS脚本的方法

    /// <summary> /// 窗体加载 /// </summary> private void JS_Load(object sender, EventArgs e) { ...

  3. Docker: adding a file from a parent directory

    17down votefavorite 4 In my Dockerfile I've got : ADD ../../myapp.war /opt/tomcat7/webapps/ That fil ...

  4. Java的“友好的”访问指示符(修饰符)

    如果根本不指定访问指示符,就象本章之前的所有例子那样,这时会出现什么情况呢?默认的访问没有关键字,但它通常称为"友好"(Friendly)访问.这意味着当前包内的其他所有类都能访问 ...

  5. 七个结构模式之桥接模式(Bridge Pattern)

    问题: 当存在多个独立的变化维度时,如果仍采用多层继承结构,会急剧的增加类的个数,因此可以考虑将各个维度分类,使他们不相互影响. 定义: 将抽象部分与它的实现部分进行分离,抽象部分只保留最为本质的部分 ...

  6. Xdebug文档(一)基本特性

    基本属性(参数) xdebug.default_enable 类型: boolean,默认值: 1 这是xdebug的基本设置,默认在调试跟踪时显示错误信息.可以使用xdebug_disable()函 ...

  7. 钉钉如何进行PC端开发

    前段时间,用钉钉进行了服务器端的开发,对照着官方文档,感觉还是比较顺利的.后续想有时间研究一下PC端客户端的开发,看着官方文档,说的确实是比较简练,但也确实没看太明白,废了半天劲也没成功.后来经过无数 ...

  8. CountUp.js – 让数字以非常有趣的动画方式显示

    CountUp.js 无依赖的.轻量级的 JavaScript 类,可以用来快速创建以一种更有趣的动画方式显示数值数据.尽管它的名字叫 countUp,但其实可以在两个方向进行变化,这是根据你传递的 ...

  9. XMPP学习——2、用户登录

    最近在学习XMPP的使用,打算完成一个完整较为完整地Demo示例,通过这个示例掌握xmpp的使用与开发.同时打算在这个示例中学习使用一下其他的开源类库,在此作为记录学习. 包括服务器端--Openfi ...

  10. 线程安全、数据同步之 synchronized 与 Lock

    本文Demo下载传送门 写在前面 本篇文章讲的东西都是Android开源网络框架NoHttp的核心点,当然线程.多线程.数据安全这是Java中就有的,为了运行快我们用一个Java项目来讲解. 为什么要 ...