mysql和redis主从配置

mysql主服配置:

开启二进制日志,这是必须的

log-bin=mysql-bin //开启MYSQL二进制日志
server-id=1 //服务器ID不能重复
binlog-do-db=db1 //需要做主从备份的数据库名字,多个库只能定义多个属性,不能定义在一个属性里
binlog-do-db=db2
binlog-do-db=db3

添加一个供从服同步数据的账号

GRANT REPLICATION SLAVE ON *.* TO '帐号'@'从服务器IP' IDENTIFIED BY '密码';

重启主服

重启后,设为只读

FLUSH TABLES WITH READ LOCK;

查看并记录二进制文件和位置

show master status;

解除只读状态

UNLOCK TABLES;

开始配置从服务器

server-id=2 //服务器ID不能重复
master-port=3306 //主库的端口
replicate-do-db=db1 //需要做复制的数据库名,同样,多库要设置多个属性
replicate-ignore-table=db1.pre_common_session //自动跳过的表,session表没必要做复制
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 //自动跳过的错误代码,以防复制出错被中断

手动将主服上数据同步到从服

重启从服

mysql命令行执行

change master to master_host='主服ip', master_user='主服上同步账号', master_password='同步账号密码', master_log_file='主服二进制文件名', master_log_pos=position的值;

 

启动从服
start slave;

查看从服状态

show slave status;
 Slave_IO_Running | Slave_SQL_Running,这两个yes状态就是正常了,否则的话,查看具体error信息

编辑从服配置

master-host=192.168.1.2 //主库A的IP
master-user=rep //刚才在主库创建的帐号
master-password=123 //密码

redis主从设置

主服务器不需要做什么调整,直接在从服务器配置文件里,加上

slaveof 192.168.0.2  6379

从属于 主机ip 端口

第一次挂载硬盘

新插的硬盘,通过df -h命令是看不到的,需要用fdisk -l查看,在df -h里看不到,而在fdisk -l看到的盘信息,就是刚插入还没挂载的盘了,比如我插的这块是/dev/sda

先进行分区:

fdisk -S 56 /dev/sda

上面命令会进入分区命令行,m=查看全部命令,n=新建分区,直接输入n,接下来提示创建ext分区还是主分区,选择主分区,也就是接着输入p,接下来提示输入分区号(1-4),输入1,如果提示分区1已存在,打p命令看一下有哪些已分好的分区,不需要的话,可以用d命令删除已有分区,接下来继续分区,最后输入w命令保存分区。顺利的话,应该分别输入的是n p 1 w

接下来再次使用fdisk -l查看盘,应该就可以看到sda盘下面详细的分区了,比如我只分一个区,那么就是sda1

格式化分区

mkfs.ext3 /dev/sda1

时间有点长,直到提示writing superblocks and filesystem accounting information:done,一定要等到最后done出现,就表示格式化完成了

添加分区信息

echo '/dev/sda1  /mnt ext3    defaults    0  0' >> /etc/fstab

挂载分区

mount -a

最后用df -h,应该就可以看到新盘的分区了

redis持久化

redis持久化有两种方式,这里不详细介绍,我用的是默认方式,刚才重启服务器,发现没有载入持久文件,问题出在哪里呢?

出在配置文件上,配置文件指定的持久化dump.rdb文件,没指定路径,而安装的时候,是在安装目录直接启动redis服务的,所以持久化文件默认放在安装目录里,这次重启,rdb默认找到root目录了,没有找到rdb文件,当然就不会载入了,还好发现的早,修改配置文件,改成绝对路径,然后把安装目录下的rdb文件拷贝到指定目录,重启redis,一切恢复正常,中间丢了一点key,不过问题不大。