300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux mysql1146_MySQL主从同步及错误1146解决办法

linux mysql1146_MySQL主从同步及错误1146解决办法

时间:2023-07-10 01:31:05

相关推荐

linux mysql1146_MySQL主从同步及错误1146解决办法

在实际使用MySQL的时候我们有时要增加一些新的库进行主从同步,所以可以通过修改f文件以及在主库上添加用户连接权限就可以实现主从同步,而在做主从同步的时候碰到几个问题这里就和大家说一下,至于如何构建主从同步这里就不再多说了,相信在网上能找到一大堆,这里就稍稍提几个关键点,在从库下的f添加如下几行:

server-id = 2#一般主库是1,从库可以除1以外的数字

log-bin=mysql-bin#从库是读取主库logbin文件的,这行一定要加,不然会报错

report-host=192.168.168.253#主库的ip

relay-log = mysql-relay-bin

replicate-wild-do-table=database.%#需要同步主库里的某一个库,多个库可自行添加

在主库里添加用户使从库可连接,这里需要注意的是给权限时密码必须是密文,不然会报错误1372,我们可以用

mysql>select password('password');#生成41位的十六进制数

mysql> GRANT REPLICATION SLAVE ON *.* TO 'test_backup'@'192.168.168.254' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';#要这样给权限

在主库权限给好后从库里去修改连接主库的状态值

change master to master_host='192.168.168.253',master_user='test_backup',master_password='test_backup',master_log_file='mysql-bin.XXXXXX',master_log_pos=XXX;

slave start;

然后show slave status\G看下面2项目是yes就行了

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

按理说主从同步到这里应该是结束了,但是,我在主库里查询以一下语句,再来看从库的状态时就会报错1146,刚刚开始还以为是库表文件损坏但是都没有用,于是上网去找很多方法都没有用到后来想到报错是从库里找不到相应的表,与是就看下从库里果然没有任何库,因为主从同步只会同步并不会新建库,于是就到主库里导出要同步的库

mysqldump -uroot -p database > database.sql

在从库里建同名的库并导入,注意要和主库里用同样的字符集

mysql> CREATE DATABASE `DATABASE` CHARACTER SET utf8 COLLATE utf8_general_ci

mysql>source database.sql#如果不在database.sql路径进入mysql要写database.sql的路径

mysql>slave stop;

再次调整最新的状态值再slave start,这样主从同步就做好了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。