Linux中MySQL主从配置的详细步骤

Linux中MySQL主从配置的详细步骤

  • 一、原理
    • 配置server_id 的作用
    • 主从复制原理
  • 二、安装mysql
  • 三、主库操作
    • 修改mysql的my.cnf文件
    • 重启mysql
    • 创建slave用户并赋予权限
    • 放行3306端口
  • 四、从库操作
    • 查看auto.cnf中uuid
    • 修改mysql的my.cnf文件
    • 重启mysql
    • 在从库中配置主库的信息
  • 五、验证主从关系
    • 启动主从数据库
    • 在主库创建数据库,看从库是否也有

一、原理

配置server_id 的作用

  1. 从库的id要比主库小,因为通信时候,会比较id

主从复制原理

  1. 主库中操作成功的sql语句会保存在一个log文件中,从库通过读取log文件中sql语句来实现与主库同步的效果。

注意:尽量不要再从库进行增删改,从库主要用于读
主从模式在mysql5.6开始有的

二、安装mysql

  1. 上传mysql压缩包(设 压缩包名为mysql)
  2. 解压压缩包
    tar -zxvf 文件目录/mysql
  3. 进入mysql目录
    cd mysql
  4. 创建用户组和用户
    groupadd mysql
    useradd -r -g mysql mysql
  5. 赋权,让用户组和用户具有操作权限
    5.1 变更mysql用户组有操作当前文件夹的权限
    chgrp -R mysql .
    5.2 变更mysql用户具有操作本级目录的权限。
    chown –R mysql .

    上面两个命令可以换成一条
    chown -R mysql:mysql ./
    . 指当前目录,所以以上命令必须在mysql目录下执行

  6. 初始化
    6.1删除或备份my.cnf文件
    删除rm /etc/my.cnf
    备份cp /etc/my.cnf /ect/my.cnf.bak
    6.2 初始化数据库
    ./scripts/mysql_install_db --user=mysql
  7. 修改配置文件
    7.1 复制my.cnf文件
    cp support-files/my-default.cnf /etc/my.cnf
    7.2 复制启动文件
    cp support-files/mysql.server /etc/rc.d/init.d/mysql
  8. 重启mysql
    service mysql restart
  9. 修改密码
    9.1 进入mysql
    mysql –u root –p
    9.2 修改密码
    use mysql
    update user set password= passworD ("password") where user='root';
    flush privileges;
    1. mysql必须在启动状态下,才可以修改密码
    2. 第一次进入系统不需要密码,直接回车就好
    3. 此处为mysql 5.7版本的更新密码,高级版本有所不同,请自查。
    4. 如果提示没有mysql命令,需要添加软连接
      ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
  10. 设置用户具有访问的权限
    赋予权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    刷新权限:flush privileges;
    退出:quit

    忘记root密码解决办法:
    进入/etc/my.cnf 在[mysql]下添加skip-grant-tables 启动安全模式
    命令:vi /etc/my.cnf
    重启服务:
    命令:service mysql restart
    登录mysql,输入密码时直接回车
    命令: mysql -u root -p
    进入到mysql后,先使用mysql数据库
    命令:use mysql
    修改密码
    命令: update user set password= passworD (“smallming”) where user=‘root’;
    刷新权限
    命令: flush privileges;
    退出MySql编辑模式
    命令:exit

三、主库操作

修改mysql的my.cnf文件

  1. 一般情况下my.cnf文件在 etc目录下,执行命令:
    vim /etc/my.cnf
  2. 修改log_bin 日志文件名称,启用日志功能
    log_bin=master_log
  3. 给定一个server_id值
    server_id=1

重启mysql

service mysql restart

创建slave用户并赋予权限

  1. 进入mysql
    mysql -uroot -ppassword
  2. 创建用户并赋予权限
grant all privileges on *.* to 'slave_name'@'slave_ip' identified by 'password' with grant option;

注意:slave_name:从库登入主库时的用户名
slave_ip:从库的ip地址
password:从库登入主库时的密码

  1. 执行结束,刷新权限
    flush privileges;
  2. 查看数据的主从关系
    show master status;

放行3306端口

(1、2选一个执行就好)

  1. 关闭防火墙
    service iptables stop
  2. 开启3306端口放行
    2.1 进去配置文件中放行3306端口
    vim /etc/sysconfig/iptables
    2.2 重启防火墙
    service iptables restart

四、从库操作

查看auto.cnf中uuid

1.进入 auto.cnf
vim mysql安装路径/data/auto.cnf
2. 查看主从的uuid是否一致,一致则需要修改为不一致即可

注意:如果有修改uuid,修改后需要重启mysql
service mysql restart

修改mysql的my.cnf文件

  1. 一般情况下my.cnf文件在 etc目录下,执行命令:
    vim /etc/my.cnf
  2. 给定一个server_id值
    server_id=2

重启mysql

service mysql restart

在从库中配置主库的信息

  1. 进入mysql
    mysql -uroot -ppassword
  2. 关闭slave
    stop slave
  3. 配置master信息
change master to master_host='master_ip',master_user='name',master_password='password',master_log_file='master_log.000001';

注意:master_ip:主库的ip地址
name:登入主库用的用户名
password:登入主库用的密码
master_log.000001:主库的log_bin 文件的真实名称,可以在主库中用show master status;命令查看

  1. 启动slave
    start slave
  2. 查看slave状态
    show slave status \G;

注意:\G是为显示格式好看一些
如果显示信息中Errno为0则没有问题

五、验证主从关系

启动主从数据库

在主库创建数据库,看从库是否也有

  1. create database demo1 default character set utf8;

你可能感兴趣的:(mysql)