我是mysql管理的新手。我们有主从复制环境。
我向现有的env 主从添加了第二个从节点,复制就成功了。每当我在第二个从节点上重新启动mysqld服务时,复制就不会在从节点上自动启动。这就是我想要达到的目标。
我正在执行这些查询,以便与第二个从站上的主节点重新同步。
2nd slave mysql> start slave;  
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO  
2nd slave mysql>mysql> show variables like 'server_id';    
+---------------+-------+  
| Variable_name | Value |  
+---------------+-------+  
| server_id     | 0     |  
+---------------+-------+  
1 row in set (0.00 sec)  
2nd slave mysql> SET GLOBAL server_id=3;  
Query OK, 0 rows affected (0.00 sec) **我确实在/etc/my.cnf文件中将server-id指定为3,但在重新启动mysqld服务后不接受它。
2nd slave mysql> show slave status\G  
*************************** 1. row ***************************  
           Slave_IO_State:  
              Master_Host: masterhost   
              Master_User: mysql  
              Master_Port: 3306  
            Connect_Retry: 60  
          Master_Log_File: mysql-bin.000012  
      Read_Master_Log_Pos: 17203734  
           Relay_Log_File: mysqld-relay-bin.000002  
            Relay_Log_Pos: 616388  
    Relay_Master_Log_File: mysql-bin.000012  
         Slave_IO_Running: No  
        Slave_SQL_Running: No  
          Replicate_Do_DB:  
      Replicate_Ignore_DB:  
       Replicate_Do_Table:  
   Replicate_Ignore_Table:  
  Replicate_Wild_Do_Table:  
  Replicate_Wild_Ignore_Table:  
               Last_Errno: 0  
               Last_Error:  
             Skip_Counter: 0  
      Exec_Master_Log_Pos: 17203734  
          Relay_Log_Space: 616669  
          Until_Condition: None  
           Until_Log_File:  
            Until_Log_Pos: 0  
       Master_SSL_Allowed: No  
       Master_SSL_CA_File:  
       Master_SSL_CA_Path:  
          Master_SSL_Cert:  
        Master_SSL_Cipher:  
           Master_SSL_Key:  
    Seconds_Behind_Master: NULL  
Master_SSL_Verify_Server_Cert: No  
            Last_IO_Errno: 0  
            Last_IO_Error:  
           Last_SQL_Errno: 0  
           Last_SQL_Error:  
1 row in set (0.00 sec)  **从上面的命令中,我将master_log_file和MASTER_log_pos作为resync。
mysql> CHANGE MASTER TO MASTER_HOST='masterhost', MASTER_USER='mysql', MASTER_PASSWORD='!adbcd', MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=17203734;  
Query OK, 0 rows affected (0.01 sec)  
mysql> start slave;  
Query OK, 0 rows affected (0.00 sec)  它又开始从主人那里复制。我如何避免这一手动步骤在未来和自动复制?
这是我的/etc/my.cnf文件。
[root@2nd slave ~]# more /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#max_connections
max_connections=400
symbolic-links=0
server-id=3
#skip-slave-start
log-bin=/data/mysql/mysql-bin
#binlog_format=ROW
max_user_connections = 400
key_buffer = 64M
max_allowed_packet = 32M
sort_buffer_size = 64M
net_buffer_length = 64K
read_buffer_size = 16M
read_rnd_buffer_size = 16M
thread_stack = 192K
thread_cache_size = 8
query_cache_limit = 10M
query_cache_size = 64M
innodb_buffer_pool_size = 1000M
innodb_additional_mem_pool_size = 100M
innodb_log_file_size = 10M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_thread_concurrency = 16
[root@2nd slave ~]#谢谢,
发布于 2015-08-21 19:41:13
将server-id=3从[mysqld_safe]下移动到[mysqld]下
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
server-id=3
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#max_connections
max_connections=400
symbolic-links=0
#skip-slave-start
log-bin=/data/mysql/mysql-bin
#binlog_format=ROW
max_user_connections = 400
key_buffer = 64M
max_allowed_packet = 32M
sort_buffer_size = 64M
net_buffer_length = 64K
read_buffer_size = 16M
read_rnd_buffer_size = 16M
thread_stack = 192K
thread_cache_size = 8
query_cache_limit = 10M
query_cache_size = 64M
innodb_buffer_pool_size = 1000M
innodb_additional_mem_pool_size = 100M
innodb_log_file_size = 10M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_thread_concurrency = 16然后重新启动mysql
也许[mysqld_safe]不理解服务器id。通常,[mysqld_safe]不理解的选项应该传递给[mysqld]。这在MySQL 5.1中可能被打破了。
https://dba.stackexchange.com/questions/111864
复制相似问题