wendu 发表于 2018-10-8 12:47:19

Linux 下实现Mysql主从

  关于mysql的安装前面的文章已经写到,这里不就再说了
  这里首先要创建一个你要同步的数据库作为测试用
  首先再master上创建一个备份账户 这里创建的账户为repl %表示任意地址的repl用户均可登入master主库

  GRANT REPLICATION SLAVE ON *.* TO 'repl '@'%'>  GRANT ALL PRIVILEGES ON *.* TO 'repl'@'%'>
  从库机器上连接主库命令mysql -h IP地址 -uroot -p ;测试从库连接主库,如无法连接,进行授权解决
  (这里我使用第一个账户授权时到时配置完成后无法同步数据,原因是权限不够,所以这里我直接使用第二个授权命令)
  修改my.cnf配置文件
  vi /etc/my.cnf
  加入如下参数:
  server-id=1
  log-bin=/var/lib/mysql/mysql-bin
  binlog_do_db= test    #主从同步数据库名称
  character-set-server=utf8    #仅适用5.5以上版本
  保存后,重启数据库 service mysqld restart;
  查看server-id是否已生效
  show variables like 'server_id';

  如果server_id'不存在执行,创建SET GLOBAL server_id=1;
  查看主机状态 show master status;

  记录下 File 和Position 后面配置从库时会用到
  从库配置
  这里一样要创建一个数据库,要与master上的库一致才可以(ps,仅限测试用例,正式环境为了保证数据的完整性,要从主库备份要同步的库还原到从库)
  修改my.cnf配置文件
  vi /etc/my.cnf
  加入如下参数:
  server-id = 2
  log-bin=/var/lib/mysql/mysql-bin
  replicate-do-db=   test   #主从同步数据名称
  character-set-server=utf8    #仅适用5.5以上版本
  保存后,重启数据库 service mysqld restart;
  查看server-id是否已生效
  show variables like 'server_id';

  停止slave 服务
  stop slave;
  设置从库连接时登录主数据库的账号和密码等信息,然后启动slave(ps:这最好重新查看一下master状态,以防信息发生改变 show master status; )
  CHANGE MASTER TO MASTER_HOST = '192.168.1.185' ,MASTER_USER = 'repl'
  ,MASTER_PASSWORD ='Abcd@1234'
  ,MASTER_LOG_FILE ='mysql-bin.000001'
  ,MASTER_LOG_POS =437;
  开启slave
  start slave;
  show slave status;
  查看这两项是否为YES,yes为正常。
  Slave_IO_Running: Yes或 Connecting to master
  Slave_SQL_Running: Yes
  正常说明配置成功,接下来进行测试就可以了
  show processlist可以在master上查看 slave线程状态
  以下链接包含已存在的旧数据库如何同步
  http://jingyan.baidu.com/article/d71306352c4b5813fcf47553.html

页: [1]
查看完整版本: Linux 下实现Mysql主从