mysql主从复制笔记详解数据库

mysql主从复制笔记(2台阿里云服务器 centos系统 mysql版本最好一致)1 配置Master主服务器在Master MySQL上创建一个用户‘dog’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON *.* TO 'dog'@'localhost';

ps:先localhost 然后再改成%, 然后从数据库登陆master数据库测试下 能不能连接上

2 找到MySQL安装文件夹修改my.cnf文件。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就ok。

server-id=1 //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号 这个地方要注意不能出现relay-loglog-bin=master-binlog-bin-index=master-bin.index

然后重启mysql 运行如下

mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      313 |              |                  |+------------------+----------+--------------+------------------+1 row in set

3 设置slave数据库 这个地方要注意不能出现log-bin log-bin-index找到mysql配置文件

[mysqld] server-id=2 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin 

重启MySQL服务
4 连接Master slave数据库命令输入如下 直接运行

change master to master_host='192.168.1.104',master_port=3306,master_user='dog',master_password='123456',master_log_file='master-bin.000001',master_log_pos=313;

如果报错了 那肯定是master权限问题 检查下master权限
5 启动Slavestart slave;
6查看slave状态是否成功

 mysql> show slave status;
        Slave_IO_State: Waiting for master to send event              Master_Host: 192.168.1.104 //主服务器地址              Master_User: dog//授权帐户名,尽量避免使用root              Master_Port: 3306    //数据库端口,部分版本没有此行              Connect_Retry: 60              Master_Log_File: mysql-bin.000001              Read_Master_Log_Pos: 313     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos              Relay_Log_File: ddte-relay-bin.000003              Relay_Log_Pos: 251              Relay_Master_Log_File: mysql-bin.000004              Slave_IO_Running: Yes    //此状态必须YES              Slave_SQL_Running: Yes     //此状态必须YES

ps:如果Slave_IO_Running显示conecting 那就是change master to master_hos李的参数写错了 仔细对应下 主数据库SHOW MASTER STATUS里的数据还有看看主服务器的mysql错误日志还有仔细看看主从数据库配置文件有没有写错
7在主服务器创建个数据库 试试    ps前期 主从数据库内容必须保持一致 不然会报错


mysql> create database dsd;Query OK, 1 row affected (0.00 sec)
mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || bird               || dsd                || hi_db              || mysql              || performance_schema || wordpress          |+--------------------+7 rows in set (0.00 sec)

   slave数据立马会更新


mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || dsd                || mysql              || performance_schema |+--------------------+4 rows in set (0.00 sec)

如果你要查看master 修改的二进制可以去master phpmyadmin 二进制可以查看  ps:原理就是master运行mysql语句 会更新到二进制日志  然后slave读取master的二进制日志 进行运行mysql语句比如 master执行了一条update语句 slave也会执行一条update语句 如果slave因为表结构跟master不一样 导致运行 sql出错 就会造成主从复制出错

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/4029.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论