標籤:mysql
新增一台從伺服器配置完
server-id = 117
log-bin = mysql-bin
binlog-format = mixed
relay-log = mysql-relay
grant replication client,replication slave on
. to [email protected]‘192.168.0.%‘ identified by ‘centos7‘;
change master to
master_host = ‘192.168.0.106‘,
master_user = ‘centos7‘,
master_password = ‘centos7‘,
master_log_file =‘mysql-bin.000002‘,
master_log_pos =106;
執行start slave出現 The server is not configured as slave; fix in config file or with CHANGE MASTER TO錯誤
執行show variables like ‘server_id‘;查看
server-id為0,servier-id為117怎麼會是0?
執行命令“SET GLOBAL server_id=117;”這樣可以解決
不過SET GLOBAL server_id=;”命令會在mysql服務重啟後丟失,所以一定要寫到設定檔裡面。
仔細排查,發現配置裡面有[mysqld]和[mysqld_safe],新增的設定檔放的位置不一樣也有關係?於是我嘗試把設定檔改成這樣再嘗試一下
將safe的設定檔放到mysqld上
重啟伺服器
再次執行start slave;
報錯The server is not configured as slave; fix in config file or with CHANGE MASTER TO
這是因為上次的配置還在使用,重設一下
執行reset slave
如果還出錯可以將配置產生的檔案刪除重新設定。
一定要注意
master_log_file =‘mysql-bin.000002‘,
master_log_pos =106;
這兩個選項使用show master status;查看
主伺服器運行中並且有一定的資料再加入從伺服器:
此過程要先把主伺服器的資料備份出來,然後拷貝到從伺服器上匯入到從伺服器的資料庫,然後在讓從伺服器從主伺服器的指定位置開始備份資料即可。
ubuntu下的配置
不要在my.cnf下配置或者把下面的命令加入到最下面
最好在/etc/mysql/mysql.conf.d/mysqld.cnf下配置
ubuntu從伺服器
要在/etc/mysql/mysql.conf.d/mysqld.cnf下配置否者不生效
注意安全模式
[mysqld_safe]
不要在這裡配置
在下面的mysqld配置
放到最後面
server-id = 114
log-bin = mysql-bin
binlog-format = mixed
relay-log = mysql-relay
主伺服器上加許可權
grant replication client,replication slave on . to [email protected]‘192.168.0.%‘ identified by ‘ubuntu1‘;
從伺服器上加入下面指令
change master to
master_host = ‘192.168.0.106‘,
master_user = ‘ubuntu1‘,
master_password = ‘ubuntu1‘,
master_log_file =‘mysql-bin.000003‘,
master_log_pos =2536;
一定要使用如下命令啟動從伺服器
start slave;
mysql 新增從伺服器配置出錯