Mysql主从搭建

一、安装Mysql服务环境准备

  1. 检查服务器是否已经安装了MySQL(一般情况下centos会自带MySQL)执行:
    rpm -qa |grep mysql
    rpm -qa | grep mariadb
  2. 卸载MySQL, 对第1步查询出来的MySQL分别执行:

    yum remove mysql-${version}
    yum remove mysql-libs-${version}
    rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps # 大部分情况会存在依赖,使用 --nodeps 忽略

  3. 检查MySQL是否卸载完成,如果没有任何结果表明MySQL已经卸载完
    rpm -qa |grep mysql

  4. 查询MySQL对应的目录或文件
    whereis mysql

  5. 删除第4步查询出来的目录或文件(如果第4步没有结果,那么此步不用执行)

  6. 检查MySQL用户组和用户是否存在
    cat /etc/group | grep mysql
    cat /etc/passwd |grep mysql

  7. 创建MySQL用户组和用户(如果第6步没有结果,那么执行此步)
    groupadd mysql -- 创建mysql组
    useradd -r -g mysql mysql --创建mysql用户属于mysql组

  8. 从官方网站(https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz)下载MySQL包mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz并放到 /opt/ 目录下

二、 搭建数据库

  1. 进入/opt 执行:
    cd /opt
    tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
  2. 将解压后的文件夹改名
    tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
    mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
  3. 创建mysql data目录
    cd /opt/mysql
    mkdir data
  4. 更改MySQL所有的目录、文件所属的用户组、用户、访问权限
    cd /opt/
    chown -R mysql:mysql /opt/mysql  --修改目录所属用户
    chmod -R 755 /opt --给目赋权
  5. 安装Mysql(一定要记住安装日志文末的密码)
    cd /opt/mysql/bin
    ./mysqld --initialize --user=mysql --datadir=/opt/mysql/data --basedir=/opt/mysql
  6. 添加配置文件 my.cnf 
    vi my.cnf 
    [mysqld]
    
    basedir=/opt/mysql
    # mysql data目录
    datadir=/opt/mysql/data
    # 使用mysql -u root-p 登录socket配置
    socket=/opt/mysql/mysql.sock
    port=3306
    
    # 模式配置
    sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    max_connections=400
    innodb_file_per_table=1
    lower_case_table_names=1
    
    # 字符集配置
    character-set-server=utf8
    
    ################################启用二进制日志  主从配置开始########################
    
    # 启用二进制日志   从库不需要配置
    log-bin=mysql-bin-master
    
    # 本机数据库ID 标识 ,主从情况ID 要唯一
    server-id=1   
    
    
    # 可以被从服务器复制的库, 二进制需要同步的数据库名   从库不需要配置
    # 如果有多个数据库就每行一个,如果不指定的话默认就是所有数据库.
    # binlog-do-db=test   
    
    #不可以被从服务器复制的库   从库不需要配置
    binlog-ignore-db=mysql
    
    ################################启用二进制日志  主从配置结束########################
    
    [mysqld_safe]
    log-error=/var/log/mysql/mysql.log
    pid-file=/var/run/mysql/mysql.pid
    
    
    [client]
    port=3306
    #使用mysql -u root-p 登录socket配置
    socket=/opt/mysql/data/mysql.sock
    #字符集配置
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
  7. 启动Mysql
    cd /opt/mysql/support-files
    ./mysql.server start
  8. 检查MySQL是否启动成功
    ps -ef|grep mysql
  9. 客户端连接,如果无法使用mysql -u root -p命令,则需要添加映射

    ln -s /opt/mysql/bin/mysql /usr/bin 映射

    mysql -u root -p
    修改账号密码  ALTER USER USER() IDENTIFIED BY '123456';

  10. 修改后重启mysqld服务

/opt/mysql/support-files/mysql.server stop
/opt/mysql/support-files/mysql.server start

tail -f /var/log/messages

三、主从配置:

主库配置:

  1. 授权主从同步slave用户权限,先登录
    mysql -u root -p
    grant replication slave on *.* to slave@ip identified by "123456";  #ip地址为从库的IP
  2. #查看状态信息
    show master status; 
  3. 查看主服务器主从同步状态:
    show processlist\G

从库配置:

  1. 从库my.cnf 维护
    /etc/my.cnf 文件中添加配置server-id=2 ,并重启服务
  2. 登录从库
    mysql -u root -p
  3.  同步主库设置
    change master to master_host='10.xx.xx.xx',master_user='slave',master_password='123456'; #IP地址为主服务器地址
  4. 启动从库配置
    start slave; #启动slave
    show slave status\G;  #查看状态

可以看到出现了两个为 YES,则主从配置成功了


四、 设置mysql服务开机启动

  1. 将服务文件拷贝到init.d下,并重命名为mysql
    cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. 赋予可执行权限
    chmod +x /etc/init.d/mysqld
  3. 添加服务
    chkconfig --add mysqld
  4. 显示服务列表
    chkconfig --list
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值