1、先开启3306端口(主从服务器都打开)。
Oneinstack方法:1)、iptables -IINPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT #打开 iptables 3306 端口
2)、service iptablessave #保存 iptables 规则
2、配置主数据库:使用VI 命令查看编辑my.cnf。方法:vi /etc/my.cnf。VI使用命令大全:http://man.linuxde.net/vi。(或使用SFTP将my.cnf文件下载下来使用编辑器编辑后上传覆盖。)
配置:server-id = 1
log-bin= mysql-bin
binlog_format = mixed
binlog-do-db = chs
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
binlog_checksum=NONE
3、建立主数据库用户用于从数据库同步数据使用,方法:grant replication slave on *.* to 账号@从数据库IP地址 identified by '密码'
4、查看主数据库状态
方法:flushprivileges;##用户权限立即生效
show master status;##查看主库状态
+------------------+----------+--------------+---------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+---------------------------------------------+-------------------+
| mysql-bin.000010 | 120 | chs |mysql,performance_schema,information_schema | |
+------------------+----------+--------------+---------------------------------------------+-------------------+
5、配置从数据库:配置文件方法:vi /etc/my.cnf。
配置:server-id=2 ##正常id与主库不一样即可
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
6、从数据库建立要同步的数据库,执行配置连接主库:change master to master_host = '192.168.9.33', master_user ='slave', master_port=3306, master_password='123456', master_log_file ='mysql-bin.000011',master_log_pos=8310;
7、开始同步 :start slave; 查看同步状态:show slave status\G;
正常状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
8、解决主从不同步
方法一:忽略错误后,继续同步
该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
解决:
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;
之后再用mysql> showslave status\G 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ok,现在主从同步状态正常
方式二:重新做主从,完全同步
该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
解决步骤如下:
1.先进入主库,进行锁表,防止数据写入
使用命令:
mysql> flush tables with read lock;
注意:该处是锁定为只读状态,语句不区分大小写
2.进行数据备份,然后将备份数据导入从数据库
设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
change master to master_host ='192.168.128.10', master_user = 'slave', master_port=3306,master_password='123456', master_log_file = 'mysqld-bin.000001',master_log_pos=3260;
3、重新开启从同步,start slave;
4、查看同步状态,show slave status\G;
显示Slave_IO_Running:Yes
Slave_SQL_Running: Yes
5、从库同步成功,即可解锁主库:mysql>unlock tables;
数据库操作
1、创建数据库用户方法:CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
2、grant all privileges on chs.* to pig@'%' identified by '123456'; ###授权
3、mysqldump -u root -p 要备份的数据库 -F > /tmp/test_backup_`date +%Y_%m_%d_%H_%M_%S`.sql ####备份数据库
4、A服务器拷贝备份到B服务器:scp -r/tmp/test_backup_2015_10_18_23_33_30.sql root@192.168.1.153:/tmp
5、在从库中还原数据库:mysql -u root -p test< /tmp/test_backup_2015_10_18_23_33_30.sql