Linux下安装启动多个MySQL

2014-11-24 17:59:10 · 作者: · 浏览: 1

网上找了N多资料,没有一个可以顺利成功的,郁闷,可能是水平有限吧...!本人经过不断的研究、测试,完整实现linux下启动两台Mysql,而且对mysql有了更深入的了解...废话不多说,走着!



步骤如下:


一、编译安装两个mysql,步骤如下


下载Mysql ,此处以Mysql-6.0.11-alpha.tar.gz 为例



安装第一个数据库(数据库)


(红色部分为默认数据库文件路径,可改成其他如:datavar)


tar zxvf mysql-6.0.11-alpha.tar.gz


cd mysql-6.0.11-alpha


./configure --prefix=/usr/local/mysql --sysconfdir=/usr/local/mysql/etc --with-tcp-port=3306 --localstatedir=/usr/local/mysql/localstate --with-unix-socket-path=/tmp/mysql3306.sock --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312,binary --enable-thread-safe-client --with-plugins=innobase --with-mysqld-user=mysql --with-charset=utf8 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static


make && make install



安装第二个数据库(从数据库)


tar zxvf mysql-6.0.11-alpha.tar.gz


cd mysql-6.0.11-alpha


./configure --prefix=/usr/local/mysql3307 --sysconfdir=/usr/local/mysql3307/etc --with-tcp-port=3307 --localstatedir=/usr/local/mysql3307/localstate --with-unix-socket-path=/tmp/mysql3307.sock --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312,binary --enable-thread-safe-client --with-plugins=innobase --with-mysqld-user=mysql --with-charset=utf8 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static


make && make install



如需支持所有字符集 修改为:--with-extra-charsets=all 即可



二、分别初始化数据库脚本(在编译目录执行下)


scripts/mysql_install_db --basedir=/usr/local/mysql/ --user=mysql


scripts/mysql_install_db --basedir=/usr/local/mysql3307/ --user=mysql


注:可用--datadir=PATH参数指定数据库文件路径,默认为编译时-- localstatedir



三、修改从库配置文件


拷贝配置文件:


cp /usr/local/software/mysql-6.0.11-alpha/support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf


cp /usr/local/software/mysql-6.0.11-alpha/support-files/my-medium.cnf /usr/local/mysql3307/etc/my.cnf



四、修改各个数据库的my.cnf文件


主要内容如下:


添加InnoDB支持:


[client]


#password = your_password


port = 3307 --数据库端口号


socket = /tmp/mysqls.sock --sock文件路径


default-character-set=utf8 --客户端UTF8连接


[mysqld]


port = 3307 --数据库端口号


socket = /tmp/mysqls.sock --sock文件路径


default-storage-engine=INNODB


default-character-set=UTF8 --默认字符集


init_connect='SET NAMES utf8' --UTF8连接


skip-name-resolve --取消DNS反向解析


lower_case_table_names=1 --不区分表名大小写



启动数据库(进入各自目录)


主:./mysqld_safe &


从:./mysqld_safe &


配置开启自动:


cp /usr/local/software/mysql-6.0.11-alpha/support-files/mysql.server /etc/init.d/mysql


cp /usr/local/software/mysql-6.0.11-alpha/support-files/mysql.server /etc/init.d/mysql3307


修改/etc/init.d/mysql3007中basedir与datadir为即可


basedir=/usr/local/mysql3307
datadir=/usr/local/mysql3307/var




停止数据库


主:./mysqladmin shutdown


从:./mysqladmin shutdown


以上各项配置都可以自行修改,以满足业务需求。