zoukankan      html  css  js  c++  java
  • Mysql主从配置步骤与各种错误

    测试环境:

      2台腾讯云服务器。CentOS 7.2 64位,1G,lnmp。

      PHP:5.6;Mysql:5.5

      

      两台干净的服务器

    下面开始配置主服务器(master)

    1.修改配置: 

    log-bin = mysql-bin 要打开,也就是把前面的#去掉。也有些配置默认就是打开的。

    其实主服务器的不需要怎么动,server-id = 1也行。IP尾号也行。

    2.重启服务:因为我的环境是lnmp。所以我的重启命令可以是:service mysql start  或者  service mysqld start  或者  lnmp restart  三个选其一。总有一个适合你。

    3.进入mysql:

    然后给从服务器配置一个可以登录的账号:

    命令:grant all on *.* to ‘账号名’@’从服务器IP’ identified by ‘密码’ 。例如:grant all on *.* to 'root'@'192.168.203.20' identified by 'repl'; 

    接着这个命令:show master status;

    得到:

    记住这两个值。等会有用。

    然后可以查看一下当前的用户。命令:SELECT user,host,password FROM mysql.user;

    看吧,是不是多了一个。

    /***************************************/

    现在开始配置从数据库

    编辑从库的my.cnf文件

    只要这个值和主库的不一样,就没有什么问题。

    接下来。还是重启服务。service mysql start  或者  service mysqld start  或者  lnmp restart  三个选其一。总有一个适合你。

    然后给从数据库一点配置:

    1. mysql> change master to  
    2. master_host=’192.168.203.68′,  // 这是主数据库IP
    3. master_user=’jack’,  // 主数据库时候配置的登录名 
    4. master_password=’123456’,  //登录密码
    5. master_log_file=’mysql-bin.0000010′,   # 从哪个bin-log开始同步   在主库中show master status
    6. master_log_pos=106;  // 同上

     本来想写干净点 为了方便你们直接复制,后来想想也没什么用,反正你们都是要改IP和账号密码的。

    接着。执行这个命令start slave;

     

    最后:show slave status G 这行命令

    千万不要在后面跟;分号。

    会影响结果的。

     

    红框两个为yes 时候。表示成功~

    /*******************************/

    报错时候!!!!

    1.如果MYSQL服务重启一直报错。那就是你的配置文件有问题。就是那个/etc/my.cnf的文件。

    2.如果从服务器不能连接到主服务。首先判断。防火墙关了没。端口开了没。安全组定义了没。

      如果防火墙:就百度防火墙开关的命令。

      如果是端口:就是服务商那里把端口全开了。服务商知道把,就是如果你的服务器是阿里。就去阿里的控制台,如果的腾讯云。就去腾讯云的控制台。

      如果是安全组:那就去服务商那里找一个‘安全组’-》'入站规则'。

    3.你也可以测试一下是否可用连接主数据库:直接敲命令:mysql -h主服务器IP -u用户名 -p密码。如果能连同。证明防火墙和端口和安全组都没问题。

    4. 最后有个坑爹的。在执行最后一个show slave status G命令的时候。如果加了分号。就会有个报错。有时候还会影响到这两个的值

     5.差不多就是这样了。如果还有其他问题。欢迎补充探讨

    2017年10月22日23:20:07补充:

    6.刚刚重新配的时候发现了一个错误。觉得很重要:

      在slave_IO_Running:connecting 的时候。可以先退出来。连接一下远程的数据库。看能不能连。mysql -h主服务器ip -u刚刚主服务器设置的账号 -p密码

      如果能连。一般来说都是没问题的。

      如果不能。那就在主服务器,关掉防火墙

    (systemctl stop firewalld.service #停止firewall

    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running))然后重启一下服务器。再去从服务器中。远程连接主服务器的数据库。一直到能连接上为止。

    还有个注意点:主服务器操作完最后一步。就不要操作了。不然会影响到Pos值。从服务器可以清空一下bin-log文件:mysql > reset master;。

  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    22. Generate Parentheses (backTracking)
    21. Merge Two Sorted Lists
    20. Valid Parentheses (Stack)
    19. Remove Nth Node From End of List
    18. 4Sum (通用算法 nSum)
    17. Letter Combinations of a Phone Number (backtracking)
    LeetCode SQL: Combine Two Tables
    LeetCode SQL:Employees Earning More Than Their Managers
  • 原文地址:https://www.cnblogs.com/chenrunxuan/p/7702433.html
Copyright © 2011-2022 走看看