MySQL错误信息1356
错误:1000 SQLSTATE: HY000 (ER_HASHCHK) 消息:hashchk错误:1001 SQLSTATE: HY000 (ER_NISAMCHK) 消息:isamchk错误:10...
2024.11.15主从服务器需要有相同的初态
将主服务器要同步的数据库枷锁,避免同步时数据发生改变mysql>use db;mysql>flush tables with read lock;将主服务器数据库中数据导出mysql>mysqldump -uroot -pxxxx db > db.sql;这个命令是导出数据库中所有表结构和数据,如果要导出函数和存储过程的话使用
mysql>mysqldump -R -ndt db -uroot -pxxxx > db.sql备份完成后,解锁主服务器数据库mysql>unlock tables;将初始数据导入从服务器数据库mysql>create database db;mysql>use db;mysql>source db.sql;好了,现在主从服务器拥有一样的初态了
4. 主服务器配置修改MySQL配置vi /etc/my.cnf在[mysqld]中添加
#主数据库端ID号server_id = 1 #开启二进制日志log-bin = mysql-bin#需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可binlog-do-db = db # binlog-do-db = db2# binlog-do-db = db3#将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中 log-slave-updates#控制binlog的写入频率。每执行多少次事务写入一次(这个参数性能消耗很大,但可减小MySQL崩溃造成的损失) sync_binlog = 1#这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突auto_increment_offset = 1#这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突auto_increment_increment = 1#二进制日志自动删除的天数,默认值为0,表示“没有自动删除”,启动时和二进制日志循环时可能删除expire_logs_days = 7#将函数复制到slavelog_bin_trust_function_creators = 1 重启MySQL,创建允许从服务器同步数据的账户#创建slave账号account,密码123456mysql>grant replication slave on *.* to ‘account‘@‘10.10.20.116‘ identified by ‘123456‘;#更新数据库权限mysql>flush privileges;查看主服务器状态mysql>show master status\G;***************** 1. row ****************File: mysql-bin.000033 #当前记录的日志Position: 337523 #日志中记录的位置Binlog_Do_DB: Binlog_Ignore_DB:执行完这个步骤后不要再操作主服务器数据库了,防止其状态值发生变化
5. 从服务器配置修改MySQL配置vi /etc/my.cnf在[mysqld]中添加
server_id = 2log-bin = mysql-binlog-slave-updatessync_binlog = 0#log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作innodb_flush_log_at_trx_commit = 0#指定slave要复制哪个库,如果是多个库则重复设置此项replicate-do-db = db # replicate-do-db = db1# replicate-do-db = db2#MySQL主从复制的时候,当Master和Slave之间的网络中断,但是Master和Slave无法察觉的情况下(比如防火墙或者路由问题)。Slave会等待slave_net_timeout设置的秒数后,才能认为网络出现故障,然后才会重连并且追赶这段时间主库的数据slave-net-timeout = 60log_bin_trust_function_creators = 1执行同步命令执行同步命令,设置主服务器ip,同步账号密码,同步位置
mysql> show binlog events in ‘mysql-bin.000033‘;//查看EventType对应的 positionmysql>change master to master_host=‘10.10.20.111‘,master_user=‘account‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000033‘,master_log_pos=337523;#开启同步功能mysql>start slave;查看从服务器状态,同步状态mysql>show slave status\G;*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.10.20.111Master_User: accountMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000033Read_Master_Log_Pos: 337523Relay_Log_File: db2-relay-bin.000002Relay_Log_Pos: 337686Relay_Master_Log_File: mysql-bin.000033 Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:...Slave_IO_Running及Slave_SQL_Running进程必须正常运行,即Yes状态,否则说明同步失败。
若失败查看mysql错误日志中具体报错详情来进行问题定位 最后可以去主服务器上的数据库中创建表或者更新表数据来测试同步
错误:1000 SQLSTATE: HY000 (ER_HASHCHK) 消息:hashchk错误:1001 SQLSTATE: HY000 (ER_NISAMCHK) 消息:isamchk错误:10...
2024.11.15引言一般来说讲,提到数据拆分,可以归结为两个层面:一是垂直拆分,二是水平拆分。这里我们来讨论下垂直拆分。垂直拆分是以数据库、表、列等为单位进行拆分的方法。正文MySQL里垂直拆分可以细分为:垂直拆库(...
2024.11.15MySQL数据库扩展和分布式随着数据量的增加和访问量的上升,数据库的扩展变得至关重要。MySQL提供了多种方法来实现数据库的扩展和分布式部署,以应对不断增长的需求。本文将介绍数据库扩展的方法,以及在分...
2024.11.13还有其他关于MySQL内容,可以在本头条号查阅。下面开始本篇——在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器...
2024.11.07一、前提1.三台服务器能相通,相互能ping的通(防火墙之类的最好都关闭)2.三台服务器都安装好MySQL,并启动成功。二、主从原理1.主节点开启binlog日志(二进制存储)2.从节点slave,在...
2024.11.12