时间:2021-07-01 10:21:17 帮助过:34人阅读
什么是sync_binlog?
当每个sync_binlog’th写入该二进制日志后,MySQL服务器将它的二进制日志同步到硬盘上(fdatasync())。请注意如果在autocommit模式,每执行一个语句向二进制日志写入一次,否则每个事务写入一次。 默认值是0,不与硬盘同步。值为1是最安全的选择,因为崩溃时,你最多丢掉二进制日志中的一个语句/事务;但是,这是最慢的选择(除非硬盘有电池备份缓存,从而使同步工作较快)。
slave:
server-id=2
datadir=/var/lib/mysql
character-set-server=utf8
init_connect=‘SET NAMES utf8‘
[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql -uroot -p123456
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘<root>‘@‘<192.168.15.142>‘ IDENTIFIED BY ‘<123456>‘;
Query OK, 0 rows affected (0.10 sec)
>FLUSH TABLES WITH READ LOCK;
[root@localhost ~]# mysqldump -u root -pnew-password --databases drp > /root/test.sql
通过FTP、SFTP或其他方式,将上一步备份的主数据库快照all.sql上传到从数据库某个路径,例如我放在了/root/目录下;
[root@localhost ~]# mysql -uroot -p -h127.0.0.1 -P3306< test.sql
Enter password:
You have mail in /var/spool/mail/root
MASTER_LOG_FILE和MASTER_LOG_POS在主数据中查看
mysql> CHANGE MASTER TO MASTER_HOST=‘192.168.15.141‘,MASTER_USER=‘root‘,MASTER_PASSWORD=‘new-password‘,MASTER_LOG_FILE=‘mysqlmaster-bin.000001‘,MASTER_LOG_POS=3931
mysql> START slave;
Query OK, 0 rows affected (0.74 sec)
查看重数据库的状态
mysql> SHOW slave STATUS \G
如果下面两个参数都是Yes,则说明主从配置成功!
slave_sql_running:负责自己的slave mysql进程
Slave_IO_Running:负责与主机的io通信
查看报错:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
意思就是从上的server_id和主的一样的,经查看发现从上的/etc/my.cnf中的server_id=1这行我没有注释掉(在下面复制部分我设置了server_id),于是马上把这行注释掉了,然后重启mysql,发现还是报同样的错误。
解决方案:
查看主从数据库中my.conf的server_id是否重复,如果重复,改一下再重启。
这样当主数据库插入数据,新建表或者创建数据库时,就可以自动同步到从数据库了~
mysql读写分离
标签:优化 进入 sftp ast 电池 stat 解决方案 server coff