说明: 以下文档为在同一个机器上,配置两个mysql服务,在我们上课的时候,会用两台单独的机器来演示,但步骤基本上一样。
2. 安装、配置MySQL参考之前步骤搭建MySQL服务为了做实验方便,我们在同一台机器上配置两个MySQL服务(跑两个端口)cd /usr/local/; cp -r mysql mysql_2; cd mysql_2;初始化mysql2: ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2拷贝配置文件:cp /etc/my.cnf ./my.cnf修改配置文件相关参数:vim my.cnf #更改port 以及 socket启动:/usr/local/mysql_2/bin/mysqld_safe --defaults-file=/usr/local/mysql_2/my.cnf --user=mysql &若开机启动它,需加入到 /etc/rc.local中
登陆:
mysql -S /tmp/mysql.sock
mysql -S /tmp/mysql2.sock
3. 配置主从准备工作
设定mysql_2 为主端口3307,mysql为从端口为3306在主上创建测试库: create database db1;然后导出主的mysql库数据然后导入给db1mysqldump -uroot -S /tmp/mysql2.sock mysql > 123.sql ;mysql -uroot -S /tmp/mysql2.sock db1 < 123.sql
4. 配置主(master)vim /usr/local/mysql_2/my.cnf #修改或添加:
server-id=1
log-bin=xrc ---可以自定义名称
两个可选参数(2选1):
binlog-do-db=db1,db2 #需要同步的库binlog-ignore-db=db1,db2 #忽略不同步的库
修改配置文件后,重启mysql_2
[pid=`ps uax |grep mysql2.sock |grep -v grep |awk '{print $2}'` ; kill $pid; cd /usr/local/mysql_2/bin/; ./mysqld_safe --defaults-file=../my.cnf --user=mysql &]
[设置root密码:mysqladmin -u root -S /tmp/mysql2.sock password '123456'
mysql -u root -S /tmp/mysql2.sock -p'123456' ]
创建一个用户repl, 只有replication(复制的意思)的权限
grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123123'; ---密码123123
flush privileges ---刷新权限
flush tables with read lock; ---锁死表的读
show master status; #一定要记住前两列的内容,一会会用到
5. 设置从(slave)
vim /etc/my.cnf #修改或增加server-id = 2 #这个数值不能和主一样
[可选参数:replicate-do-db=db1,db2 和 replicate-ignore-db=db1,db2 #意义同主的那两个可选参数]
service mysqld restart
拷贝主的db1库数据到从:
mysqldump -uroot -S /tmp/mysql2.sock -p123456 db1 > db1.sql; mysql -uroot -p -e "create database db1"; mysql -uroot -p db1 < db1.sql
mysql -uroot -p #登陆从的mysql
slave stop;change master to master_host='127.0.0.1', master_port=3307, master_user='repl', master_password='123123', master_log_file='mysql-bin.000006', master_log_pos=474952;slave start;
[主上: mysql -uroot -S /tmp/mysql2.sock -p123456 -e "unlock tables" ] ---解锁刚刚锁定的表