一:mysql主从配置环境
在同一台服务器中建立mysql主从
mysql-5.1.72-linux-i686-glibc23.tar.gz
二:搭建步骤
1、下载:cd /usr/local/src ; wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-i686-glibc23.tar.gz
2、解压:tar zxvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz;
移动重命名:mv mysql-5.1.40-linux-i686-icc-glibc23 ../mysql ; cp -r ../mysql ../mysql2
cd /usr/local/mysql/
3、复制配制文件及启动脚本:
cp ./support-files/my-small.cnf /etc/my.cnf ; cp /etc/my.cnf /usr/local/mysql2/
cp ./support-files/mysql.server /etc/init.d/mysqld ; cp /etc/init.d/mysqld /etc/init.d/mysqld2
4、mysql 数据存放目录: mkdir -p /data/mysql;mkdir -p /data/mysql2
新建mysql用户:useradd -s /sbin/nologin mysql
更改目录权限:chown -R mysql:mysql /data/mysql ; chown -R mysql:mysql /data/mysql2
5、修改配置文件、启动脚本
主mysql vim /etc/init.d/mysqld 修改 basedir datadir
从mysql vim /usr/local/mysql2/my.cnf ; 修改port socket server-id(与主不同)
vim /etc/init.d/mysqld2 修改 basedir datadir conf
6、mysql安装
主mysql cd /usr/local/mysql/; ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
从mysql cd /usr/local/mysql2/; ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2
7、启动主mysql:/etc/init.d/mysqld start
修改主mysql pw : /usr/local/mysql/bin/mysqladmin -uroot password ‘1‘
新建DB:/usr/local/mysql/bin/mysql -uroot -p1 -e ‘create database db1‘
将mysql数据库备份:/usr/local/mysql/bin/mysqldump -uroot -p1 mysql > mysql.sql
导入db1库中:/usr/local/mysql/bin/mysql -uroot -p1 db1 < mysql.sql
8、修改主mysql配置 vim /etc/my.cnf 新增log-bin=mysql-bin(自定义) binlog-do-db=mysql,db1 ,重启
9、赋用户同步权限 grant replication slave on *.* to ‘wql‘@‘127.0.0.1‘ identified by ‘wql‘; flush privileges;
10、从mysql新建db1 ,导入mysql.sql 入db1
/usr/local/mysql2/bin/mysqladmin -uroot password ‘2‘ -S /tmp/mysql2.sock
/usr/local/mysql2/bin/mysql -uroot -p2 -S /tmp/mysql2.sock -e ‘create database db1‘
/usr/local/mysql2/bin/mysql -uroot -p2 -S /tmp/mysql2.sock db1 < mysql.sql
11、修改从mysql配置 vim /usr/local/my.cnf log-bin=mysql-bin(自定义) replicate-do-db=mysql,db1 ,重启
12、进入主mysql,锁表,查看状态;
flush tables with read lock;
show master status;
进入从mysql
slave stop;
change master to master_host=‘127.0.0.1‘, master_port=3306, master_user=‘wql‘, master_password=‘wql‘, master_log_file=‘mysql-bin.000002‘, master_log_pos=106;
slave start;
show slave status;
13、测试效果,重启主从mysql
进入主mysql的db1数据库中,删除一table后,进从mysql查看,此table是否存在;是不存在,则主从配置成功,如仍在,则主从配置不成功。
三:问题
报以下错误:
1、[root@linux34 /]# service mysqld start
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
在主mysql中加入了
log-bin=mysql-bin
binlog-do-db=database1,database2 或 binlog-ignore-db=database1,database2两项导致出错
最主要的原因在于mysql未安装,未执行./script/mysql-install-db --user=mysql --datadir=/data/mysql
2、配置好后,主从一直无法同步,主要是在配置从上未按下面配置好
主mysql:
log-bin=mysql-bin
binlog-do-db=database1,database2 或 binlog-ignore-db=database1,database2
重启 /etc/init.d/mysqld restart
从mysql:
log-bin=mysql-bin
replication-do-db=database1,database2 或 replication-ignore-db=database1,database2
重启 /etc/init.d/mysqld2 restart
原文地址:http://thinkrain.blog.51cto.com/824747/1789913