ITPub博客

首页 > > > CentOS7.2环境 MySQL 5.7.18主从同步

CentOS7.2环境 MySQL 5.7.18主从同步

作者:格伯纳 时间:2020-03-05 20:01:06 0 删除 编辑

一、安装MySQL

1:查看已安装的MariaDB相关rpm包。

rpm -qa | grep mariadb

2:查看已安装的MariaDB相关yum包,包名需根据rpm命令的结果判断。

yum list mariadb-libs

3:移除已安装的MariaDB相关yum包,包名需根据yum list命令的结果判断。此步骤需要root权限。

yum remove mariadb-libs

4:安装依赖

yum install net-tools

5:使用rpm包安装MySQL

以下步骤需要root权限。且因包之间的依赖关系,各rpm命令必须按序执行。

mkdir mysql-5.7.18
tar -xv -f mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql-5.7.18
cd mysql-5.7.18/
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm


二、配置MySQL

改MySQL初始密码

以下步骤需要root权限。


1:由于一开始并不知道密码,先修改配置文件/etc/my.cnf令MySQL跳过登录时的权限检验。加入一行:

  vim /etc/my.cnf
  skip-grant-tables

2:重启MySQL。

  service mysqld restart

3:免密码登录MySQL。

  mysql

4:在mysql客户端执行如下命令,修改root密码。

  use mysql;
  UPDATE user SET authentication_string = password('your-password') WHERE host = 'localhost' AND user = 'root';
  quit;

5:修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL。这一步非常重要,不执行可能导致严重的安全问题

使用刚刚设置的密码登录。

   mysql -u root -p

6:设置root用户远程登录

1:修改validate_password_policy参数的值

     set global validate_password_policy=0;

2:validate_password_length(密码长度)参数默认为8,我们修改为1

   set global validate_password_length=1;

3:完成之后再次执行修改密码语句即可成功

alter user 'root'@'localhost' identified by '123456':

4: 设置root用户远程连接

    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

ps:解决远程连接mysql很慢的方法

vim /etc/my.cnf
[mysqld]标签下添加
skip-name-resolve


官方文档解释:据文档说明,如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,由于我们的开发机器是不能够连接外网的,所以DNS解析是不可能完成的,从而也就明白了为什么连接那么慢了。同时,请注意在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了,因为这是禁止了域名解析的结果。



三、MySQL主从配置:


1. 修改Master上MySQL配置文件my.cnf

   [mysqld]
    log-bin=mysql-bin      # [必须]启用二进制日志
    server-id=1            # [必须]服务器唯一ID
    binlog-do-db=test      # 要记录日志的数据库
    binlog-ignore-db=mysql # 不要记录日志的数据库,MySQL库不用同步,保证主从权限不同。


2. 修改Slave上MySQL配置文件my.cnf

   [mysqld]
    log-bin=mysql-bin   # [非必须]Slave可以不启用二进制日志,配置二进制日志可以便于Master和Slave交换角色
    server-id=2         # [必须]服务器唯一ID

3. 重启Master和Slave上的MySQL

systemcrl restart mysqld

4. 在Master上使用root用户登录建立同步账户并授权Slave

   mysql> GRANT REPLICATION SLAVE ON *.* to 'username'@'%' identified by 'password';
   mysql> FLUSH PRIVILEGES;

5. 使用root账户登录Master查看Master状态

    mysql> show master status;

6. 配置Slave跟踪Master日志的位置

    mysql>    #主服务IP ,master_user用户名,master_user密码, mysql-bin.000002,master_log_pos=6584  #按照Master上的填写
        change master to master_host='10.64.2.5',master_user='username',master_password='q123456',master_log_file='mysql-bin.000002',master_log_pos=6584;
        start slave;

7. 使用root账户登录MySQL核对Slave状态

    mysql> show slave status\G;
#需要特别核对Slave_IO_State、Slave_IO_Running、Slave_SQL_Running 值,以上值为正确配置状态。
     #Slave_IO_State: Waiting for master to send event 
     #Slave_IO_Running: Yes 
     #Slave_SQL_Running: Yes

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
管理员

注册时间:2018-03-30

  • 博文量
    2383
  • 访问量
    984506