MySQL主从服务安装步骤

MySQL主从服务安装步骤

安装MySQL

安装epel源和remi源

安装MySQL

yum install -y --enablerepo=remi  mysql-libs  mysql-devel  mysql  mysql-server

创建MySQL服务所需的目录

mkdir -p /opt/data/mysql  &&  chown -R  mysql:mysql  /opt/data/mysql
mkdir -p /var/log/mysql && chown -R mysql.mysql /var/log/mysql

将下列代码替换/etc/my.cnf

[mysqld]
user                    = mysql
bind-address            = 10.0.0.104    #监听IP
port                    = 3306      #监听端口
character_set_server    = utf8      #默认字符集编码    
max_connect_errors      = 100000
max_connections         = 500
server-id               = 1000
skip_name_resolve
datadir                 = /opt/data/mysql
log-error               = /var/log/mysql/mysql-error.log
socket                  = /var/lib/mysql/mysql.sock
pid-file                = /var/run/mysqld/mysqld.pid
back_log                = 2000  #创建TCP连接时,允许的最大同时未完成的连接个数(主要适用于短连接场景)
binlog-format           = MIXED     #Binlog写入格式,共有ROW/STATEMENT/MIXED三种可选。一般使用MIXED
log-bin                 = /opt/data/mysql/mysql-bin.log #Binlog日志保存路径
expire_logs_days        = 3     #Binlog保留时间(单位:天)
max_binlog_size         = 100M      #每个binlog日志大小
binlog_cache_size       = 4M        #binlong缓存大小
max_binlog_cache_size   = 512   #最大binlog缓存大小
symbolic-links          = 0

修改MySQL数据安装路径

mysql_install_db --user=mysql --datadir=/opt/data/mysql

这里的--datadir路径和/etc/my.cnf里参数datadir一致

启动MySQL

service mysqld start

创建新的授权帐号root

grant all on *.* to 'root'@'%' with grant option;
flush privileges;

清理垃圾帐号

delete from mysql.user where user = '';
delete from mysql.user where host = '::1';
flush privileges;

数据库主从配置

配置主从需要特注意一点,就是主库和从库配置文件里的参数server-id必须都保持唯一

主库server-id:


MySQL主从服务安装步骤_第1张图片
主库server-id

从库server-id:


MySQL主从服务安装步骤_第2张图片
从库server-id

创建主从同步帐号

grant replication slave, replication client on *.* to  'replication'@'%' identified by '123456';

导出主库

mysqldump -h10.0.0.104 -uroot -p --all-databases --master-data=2 --routines --events --quick> 10.0.0.104.sql
  • --master-data=2表示需要记录导出数据当时主库的binlog位置
  • --routines表示导出存储过程(可视实际库表决定是否使用)
  • --events表示导出事件(可根据实际库表决定是否使用)
  • --quick表示让服务端不将结果集一次发送,而是分批发送,可减轻压力
    另外,加上--master-data后默认是锁库的,可确保数据一致性,即导出数据和binlog位置的一致。
    对于Innodb引擎,可增加--single-transaction取消锁库并利用Innodb事务特性确保数据一致

将导出的数据库导入到从库

mysql -uroot < 10.0.0.104.sql

设置同步主库参数

登录到从库

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=277, master_host='10.0.0.104', master_port=3306, master_user='replication', master_password='123456';

上面MASTER_LOG_FILEMASTER_LOG_POS参数可以从导出主库的sql语句头部找到。

MySQL主从服务安装步骤_第3张图片
`MASTER_LOG_FILE`,`MASTER_LOG_POS`参数

检查slave同步的参数信息是否正确

show slave status;
MySQL主从服务安装步骤_第4张图片
检查slave同步的参数信息是否正确

开始同步

start slave;

检查同步是否正常

show slave status;
MySQL主从服务安装步骤_第5张图片
检查同步是否正常

如果上图中Slave_IO_RunningSlave_SQL_Running两个参数状态都为Yes,则说明同步正常

另可通过监控工具来监控这两个参数状态是否都为YES,来判断从库是否同步正常

你可能感兴趣的:(MySQL主从服务安装步骤)