一台服务器启动多个mysql数据库

安装完mysql后

复制mysql数据库到当前路径并且重命名为mysql2

cp -r /usr/local/mysql  /usr/local/mysql2

切换路径到mysql2

cd /usr/local/mysql2

复制my.cnf文件到mysql2下

cp /etc/my.cnf  /usr/local/mysql2

编辑mysql2的my.cnf

vim  /usr/local/mysql2/my.cnf

更改内容:

[mysqld]

port            = 3307

socket          = /tmp/mysql2.sock

datadir         =/data/mysql2

初始化数据库mysql2

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2

为mysql2创建启动脚本

cp /etc/init.d/mysqld /etc/init.d/mysql2

vim /etc/init.d/mysql2

更改内容:

basedir=/usr/local/mysql2

datadir=/data/mysql2

conf=$basedir/my.cnf

启动数据库mysql2

/etc/init.d/mysql2 start

主从配置

A主,B从

登录方式:

mysql -S /tmp/mysql.sock    或者  mysql -h127.0.0.1 -p3306

mysql -S /tmp/mysql2.sock    或者  mysql -h127.0.0.1 -p3307

mysql

创建库:create database db1;

quit

复制一些数据到数据库:

mysqldump -S /tmp/mysql.sock mysql > 123.sql

mysql -S /tmp/mysql.sock db1 < 123.sql    把数据导入到数据库

查看数据

mysql

use db1;

show tables;

quit

编辑主mysql的my.cnf

vim  /etc/my.cnf

server-id     = 1

log-bin=yanglog

binlog-do-db=db1,db2    (选项)

binlog-ignore-db=mysql   (选项)

:wq

修改完毕配置文件重启数据库

/etc/init.d/mysqld restart

创建一个传输binlog的用户

mysql

grant replication slave on *.* to 'repl'@'127.0.0.1'  identified by '123123';   创建用户

flush privileges;          刷新权限

flush tables with read lock;      表的读权限锁死

show master status;          读一个数据

quit

从上操作:

修改配置文件:

vim /usr/local/mysql2/my.cnf

serverid      =  11

replicate-do-db=db1(选项)

replicate-ignore-db=db1(选项)

:wq

mysql -S /tmp/mysql2.sock -e "create database db1"  创建数据库

mysql -S /tmp/mysql2.sock db1 < 123.sql      导入数据

mysql -S /tmp/mysql2.sock   登录数据库

slave  stop;          停止库

change master to master_host='127.0.0.1', master_port=3306, master_user='repl', master_password='123123', master_log_file='yanglog.000001', master_log_pos=106;(指定主的信息)

slave start;  启动库

show slave status\G;            查看主从配置是否成功

slave stop        停止库

quit     退出

/etc/init.d/mysqld2 restart      重启数据库

mysql -S /tmp/mysql2.sock

show slave status\G;        查看主从配置是否成功