数据库教程:mysql主从库同步部分表、跳过错误和部分错误代码

0 找到配置文件1、Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录。2、Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找。 (1)find /etc -name my.cnf   –在/etc目录下的文件my.cnf (2)find /etc -name ‘cnf’  –使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘cnf’的文件


0 找到配置文件

1、Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录。

2、Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找。
 (1)find /etc -name my.cnf   –在/etc目录下的文件my.cnf
 (2)find /etc -name ‘cnf’  –使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘cnf’的文件
 (3)find / -name my.cnf   –在根目录下查找文件my.cnf,表示在整个硬盘查找
 (4)find . -name ‘cnf*’    –表示当前目录下查找文件名开头是字符串‘cnf’的文件

3、Linux用rpm包安装的MySQL是不会安装/etc/my.cnf文件的。
至于为什么没有这个文件而MySQL却也能正常启动和作用,有两个说法:
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动;
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL。
解决方法:只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。

1 确认主库binlog日志已开启 并确保主从库的 server-id 不一致

服务端修改配置文件

server-id = 1  ## 开启二进制日志功能,可以随便取,最好有含义(关键就是这里了) log-bin=mysql-bin  ## 主从复制的格式(mixed,statement,row,默认格式是statement) binlog_format=row 
## 云服务器 或无法查看服务端 server-id的  可以用查看serverId   show variables like 'server_id'; 

给从库创建用于复制的用户并配置权限
服务端执行

CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';   

2 配置从库

客户端修改配置文件

server_id=2 #指定要复制的数据库 replicate-do-db=test_root #指定要复制的表 replicate-do-table = test_root.test1 replicate-do-table = test_root.test2 

3 查看主库 master 链接状态

服务端执行

show master status; 

记下 File 字段和 Position 字段

4 在从库 执行sql ,配置Slave

客户端执行

CHANGE MASTER TO master_host = '49.1.1.1', master_user = 'slave', master_password = '123', master_port = 3306, master_log_file = 'mysql-bin.000008', master_log_pos = 5617, master_connect_retry = 30; 

master_log_file即File字段

master_log_pos即Position字段

5 开启同步:

客户端执行

start slave;  

6 可以在从库终端查看是否同步成功

show slave status G 

SlaveIORunning 和 SlaveSQLRunning 是Yes表明已经开始工作了

7 跳过错误

客户端配置

#跳过指定error no类型的错误 #slave-skip-errors=1062,1053,1146 #跳过所有错误 slave-skip-errors=all 

8 部分错误代码

1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间  1022:关键字重复,更改记录失败 1023:关闭时发生错误 1024:读文件错误 1025:更改免费精选名字大全时发生错误 1026:写文件错误 1032:记录不存在 1036:数据表是只读的,不能对它进行修改 1037:系统内存不足,请重启数据库或重启服务器 1038:用于排序的内存不足,请增大排序缓冲区 1040:已到达数据库的最大连接数,请加大数据库可用连接数 1041:系统内存不足 1042:无效的主机名 1043:无效连接 1044:当前用户没有访问数据库的权限 1045:不能连接数据库,用户名或密码错误 1048:字段不能为空 1049:数据库不存在 1050:数据表已存在 1051:数据表不存在 1054:字段不存在 1065:无效的SQL语句,SQL语句为空 1081:不能建立Socket连接 1114:数据表已满,不能容纳任何记录 1116:打开的数据表太多 1129:数据库出现异常,请重启数据库 1130:连接数据库失败,没有连接数据库的权限 1133:数据库用户不存在 1141:当前用户无权访问数据库 1142:当前用户无权访问数据表 1143:当前用户无权访问数据表中的字段 1146:数据表不存在 1147:未定义用户对数据表的访问权限 1149:SQL语句语法错误 1158:网络错误,出现读错误,请检查网络连接状况 1159:网络错误,读超时,请检查网络连接状况 1160:网络错误,出现写错误,请检查网络连接状况 1161:网络错误,写超时,请检查网络连接状况 1062:字段值重复,入库失败 1169:字段值重复,更新记录失败 1177:打开数据表失败 1180:提交事务失败 1181:回滚事务失败 1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:外键约束检查失败,更新子表记录失败 1217:外键约束检查失败,删除或修改主表记录失败 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 1227:权限不足,您无权进行此操作 1235:MySQL版本过低,不具有本功能 

需要了解更多数据库技术:mysql主从库同步部分表、跳过错误和部分错误代码,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/810854.html

(0)
上一篇 2021年9月11日
下一篇 2021年9月11日

精彩推荐