• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 亲情文章 > 正文

    [完整的mysql主从配置方法] mysql主从配置

    时间:2020-05-28来源:山茶花美文网 本文已影响 山茶花美文网手机站

    mysql主从分两个角色

    1、主服务器 master

    2、从服务器 slave

    mysql主从复制就是两个服务器之间数据库的同步,也可以理解成对主服务器的一个备份,当主服务器的数据进行了变更,那么从服务器也会自动更新,其实是通过bin-log日志实现的,也就说他们中间是传输binlog日志的。这样我们就可以对数据进行多个节点进行冗余从而保证可用性!

    公司现在有三台服务器,一台阿里云,两台VPS,现在需要把阿里云上的数据库同步到其他两台VPS上。阿里云做主服务器其他两台服务器做从服务器

    操作如下:

    1、在阿里云服务器中修改f文件(一般在/etc/f)

    代码如下

    [mysqld]

    log-bin=mysql-bin //[必须]启用二进制日志

    server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    binlog-do-db=wordpress //[可选] 设置需要同步的数据,如果不设置将同步所有数据库

    binlog_ignore_db=mysql //[可选] 忽略mysql数据,因为mysql数据库是mysql的一些帐户存放,这个没有必要同步

    2、来到从服务修改f

    代码如下

    [mysqld]

    log-bin=mysql-bin //[必须]启用二进制日志

    server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    3、重启这两台服务器的mysql(第二台从服务器和第一台一样,这里就只写第一个的配置了)

    4、登录主服务器为从服务器授权

    代码如下

    GRANT REPLICATION SLAVE ON *.* to "sync"@"%" identified by "sync"; //不建议使用root

    “%”表示所有客户端都可能连,只要帐号,密码正确,此处可用从服务器IP代替,如192.168.145.226,加强安全。

    5、查看主服务器的状态

    代码如下

    show master status;

    mysql> show master status;

    +------------------+----------+-----------------------+------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+-----------------------+------------------+

    | mysql-bin.000004 | 106 | wordpress,wordpress | mysql,mysql |

    +------------------+----------+--------------+---------------------------+

    查看完状态就不要进行任何操作了,防止状态产生变化

    6、登录从服务器配置

    代码如下

    mysql> CHANGE MASTER TO

    -> MASTER_HOST = "主服务器地址",

    -> MASTER_USER ="刚才新建的帐号",

    -> MASTER_PASSWORD="新建的用户密码",

    -> MASTER_PORT=3306,

    -> MASTER_LOG_FILE="mysql-bin.000003",

    -> MASTER_LOG_POS=106;

    7、开启从服务器的复制功能

    代码如下

    START SLAVE

    8、查看从服务器的状态

    代码如下

    mysql> show slave statusG

    *************************** 1. row ***************************

    Slave_IO_State:

    Master_Host: 117.34.73.175

    Master_User: mysqlsync

    Master_Port: 3306

    Connect_Retry: 60

    Master_Log_File: mysql-bin.000002

    Read_Master_Log_Pos: 106

    Relay_Log_File: AY140429124852508639Z-relay-bin.000001

    Relay_Log_Pos: 4

    Relay_Master_Log_File: mysql-bin.000002

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    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: 106

    Relay_Log_Space: 106

    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)

    这里需要注意的

    Slave_IO_Running = Yes

    Slave_SQL_Running = Yes

    这两个值必须为Yes,如果某一个为No就说说明主从是有问题的

    如果会shell或python的话可以写一个检测脚本,检测这两个值是否都为Yes,如果有一个为No那就说明主从出现问题发邮件报警吧!

    如果其中一个为yes的话你就需要检查一下了,我在操作的过程遇到了Slave_IO_Running为No了,这个时候你看一下 Last_IO_Error这里提示:error connecting to master ‘sync@218.244.**.**:3306′ – retry-time: 60 retries: 86400 (PS:**为打码),这里提示又无法连接到服务器,一般来说可能是帐号密码设置错误,或者服务器的防火墙给拦截了,经过检查阿里云开云盾开放了3306,但是没有还是不能,这个时候在从服务器直接登录,发现是空间商的问题,本地是可以的但是从服务器是没有办法登录。

    9、这个时候你就可以在主服务器进行建表插入数据等等操作,看看从服务器是否已经同步了

    可能在敲命令的时候敲错了一些东西,可以使用下边的sql语句进行修改

    代码如下

    CHANGE MASTER TO MASTER_HOST="218.244.136.92"; //从服务器执行,意思是:修改主服务器的地址,底下意思相同

    CHANGE MASTER TO MASTER_LOG_FILE="mysql-bin.000003"MASTER_LOG_POS=106;

    在执行的时候需要先停止从服务器的同步,

    停止同步

    代码如下

    SLAVE STOP

    修改完成之后记得开启

    SLAVE START

    • [完整的mysql主从配置方法] mysql主从配置 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全