`
Donald_Draper
  • 浏览: 952244 次
社区版块
存档分类
最新评论

Mysql主从配置

阅读更多
1、主从服务器分别作以下操作:
  1)版本一致
  2)初始化表,并在后台启动mysql
  3)修改root的密码
2、修改主服务器master
#vi /etc/my.cnf      
[mysqld]
 log-bin=mysql-bin   
 server-id=1  
   

3、修改从服务器slave
 #vi /etc/my.cnf    
 [mysqld]
##is open for server as master
log-bin=mysql-bin   
server-id=2     
replicate_wild_do_table=donald.%
replicate_wild_ignore_table=test.%  



4、重启两台服务器的mysql
 service mysql restart


5、在主服务器上建立账户并授权slave
#  mysql -uroot -proot 
FLUSH PRIVILEGES;
CREATE USER 'mslave'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'mslave'@'%' IDENTIFIED BY '123456';  
FLUSH PRIVILEGES;



6、在主服务器上查询master的状态
show master status;


7、使用mysql用户登录从服务器slave,进行配置
mysql>change master to master_host='192.168.126.129',master_port=3306,master_user='mslave',master_password='123456',master_log_file='mysql-bin.000011',master_log_pos= 415;


8、启动从服务器复制功能
Mysql>start slave;  
 
注:master_log_file,master_log_pos与上一步操作中的主服务器状态值一致

9、检查从服务器复制功能状态
 mysql> show slave status\G;


注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态;为保证mysql的初始状态一致,可以将mater的mysql的data文件,copy到slave下,修改文件所有者为mysql:mysql,即可。



后记:如果要建串行复制,例如A->B->C,因为slave在同步时产生的是relaylog日志,并不产生binlog日志,如果B即要做mater,同时又是slave则B的配置如下:
log-bin=mysql-bin   
server-id=2

###在执行relaylog的时候,同时产生binlog日志
log-slave-updates=1          
replicate_wild_do_table=donald.%
replicate_wild_ignore_table=test.%  



当root密码丢失时
vim my.cnf
添加如下配置:
[mysqld]
skip-grant-tables;

无密码,连接mysql
mysql
修改root密码:
FLUSH PRIVILEGES;
update user set password=password('root') where user='root';
FLUSH PRIVILEGES;

然后关闭mysql,注释掉,
[mysqld]
#skip-grant-tables;

重启
mysql -uroot -p,输入密码即可。

FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'donald'@'localhost' IDENTIFIED BY 'donald';  
FLUSH PRIVILEGES;

FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root';  
FLUSH PRIVILEGES;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics