mysql报错:You must at least set –server-id to enable either a master or a slave
2016-11-29 16:23
766 查看
【场景】MySQL版本:Percona-Server 5.6.23,相关主要参数:
【分析】应该注意到一点,上面提到初始化slave实例时,是从master上直接拷贝mysql系统库整个目录的,但并没有同时也拷贝 ibdata1、ib_logfile* 等InnoDB相关文件。其实问题就在这里,因为mysql系统库中,下面这几个表是采用InnoDB引擎的,所以初始化后,无法正常读写:
解决的方法有两个:
1、删解除mysql系统库目录下上述几个表对应的ibd文件,执行 mysql_install_db 重新初始化;
2、从master将整个数据库全部文件都拷贝到slave上,并确认InnoDB的共享表空间文件及REDO LOG大小配置和master上是一致的;
server_id = 3306 sync_binlog=1 gtid_mod = on enforce-gtid-consistency = 1 log-slave-updates = 1 relay-log-purge = 1 relay_log_recovery = 1 master_info_repository = "TABLE" relay_log_info_repository = "TABLE"打算部署一个新的slave实例用于测试,图方便从master上直接把mysql这个系统库整个目录拷贝到slave上,进行初始化后,执行 CHANGE MASTER 配置主从复制,但却提示错误信息:
mysql> change master to master_host=’10.x.x.x’,master_port=3306,master_user=’repl’,master_password=’xx’,master_auto_position=1; ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.看到这个错误信息,最直觉的反应是 server_id 设置错误了,比如和 master 的ID重复了。经过检查,确认不是这个原因,尝试检查了其他参数,也提示同样的错误。另外奇怪的是,上面的错误信息,未被记录到错误日志中。
【分析】应该注意到一点,上面提到初始化slave实例时,是从master上直接拷贝mysql系统库整个目录的,但并没有同时也拷贝 ibdata1、ib_logfile* 等InnoDB相关文件。其实问题就在这里,因为mysql系统库中,下面这几个表是采用InnoDB引擎的,所以初始化后,无法正常读写:
innodb_index_stats innodb_table_stats slave_master_info slave_relay_log_info slave_worker_info经验证,通过客户端访问mysql库时,就会提示下面的错误信息了:
2015-05-04 17:21:25 14407 [Warning] InnoDB: Cannot open table mysql/innodb_index_stats from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 2015-05-04 17:21:25 14407 [Warning] InnoDB: Cannot open table mysql/innodb_table_stats from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 2015-05-04 17:21:25 14407 [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 2015-05-04 17:21:25 14407 [Warning] InnoDB: Cannot open table mysql/slave_relay_log_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 2015-05-04 17:21:25 14407 [Warning] InnoDB: Cannot open table mysql/slave_worker_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.【解决】本次案例中造成上述问题的原因是没有按照标准流程进行初始化,或者没有把master上的全部相关文件都拷贝到slave上去,导致mysql库下的几个InnoDB表无法使用。
解决的方法有两个:
1、删解除mysql系统库目录下上述几个表对应的ibd文件,执行 mysql_install_db 重新初始化;
2、从master将整个数据库全部文件都拷贝到slave上,并确认InnoDB的共享表空间文件及REDO LOG大小配置和master上是一致的;
相关文章推荐
- Mysql 出现错误The server is not configured as slave; fix in config file or with CHANGE MASTER TO
- mysql 5.5 主从同步数据到 msyql5.6数据库,报错为Slave is not configured or failed to initialize properly. You must
- MySQL复制错误 The slave I/O thread stopsbecause master and slave have equal MySQL server UUIDs; these UUIDs must bedifferent for replication to work 解析
- Mysql:You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true
- Server 2008 R2: “You must use the Role Management Tool to install or configure Microsoft .NET”
- You must configure either the server or JDBC driver (via the serverTimezone configuration property)
- How to enable your website to public(set up your web server at home)
- Server 2008 R2: “You must use the Role Management Tool to install or configure Microsoft .NET”
- "Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions.".
- 【MySQL】MySQL同步报错-> received end packet from server, apparent master shutdown: Slave I/O thread: Failed reading log event, reconnecting to retry报错解决和分析
- org.apache.hadoop.hbase.DoNotRetryIOException: Class org.apache.phoenix.coprocessor.MetaDataEndpointImpl cannot be loaded Set hbase.table.sanity.checks to false at conf or table descriptor if you want
- MySQL server version for the right syntax to use near 'info where info.stu_id = 1' at line 1
- Magicwinmail4.7 邮件服务器停止服务的解决办法You must set at least one domain
- you must specify at least one already-initialized correlation set for a non-activation receive that is on a non-selfcorrelating port。
- How to set up mysql master/slave architecture.
- You have an error MySQL server version for the right syntax to use near 'TYPE=InnoDB' at line 20
- mySql主从配置出错:The server is not configured as slave; fix in config file or with CHANGE MASTER TO
- Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive
- In order to run a trace against SQL Server you must be a member of sysadmin fixed server role or have the ALTER TRACE permission.
- [Note] Start binlog_dump to master_thread_id(453861043) slave_server(4294967295), pos(, 4)