基于RHEL6.0的MySQL服务器复制的主从架构实现

Linux大全评论1K views阅读模式

基于RHEL6.0的mysql服务器复制的主从架构实现

说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器

从服务器的mysql软件版本应大于或等于主服务器的mysql软件版本

主服务器与从服务器的server-id 应不同

mysql服务器的主从架构工作原理:

主服务器的dump线程将二进制日志读给从服务器的一个I/O线程;

从服务器的I/O线程将接收到的二进制日志读给中继日志;

从服务器的SQL线程一次将从中继日志中读出一句,执行一次。这样就实现了主服务数据的改变异步到从服务器上了。

 

一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)

1.172.16.22.1主机上安装mysql-5.5.20

(1).准备数据存放的文件系统

新建一个逻辑卷,并将其挂载至特定目录。

增加一个sda5id8e,先不要格式化。

  
  
  1. # fdisk /dev/sda 
  2.   
  3. +4G 
  4.   
  5. +2G 
  6. 8e 
  7. # partprobe /dev/sda 
  8. # pvcreate /dev/sda5 
  9. # vgcreate myvg /dev/sda5 
  10. # lvcreate -L 2G -n mysql myvg 
  11. # mke2fs -j /dev/myvg/mysql 
  12. # mkdir /mydata/data -pv 
  13. # mount /dev/myvg/mysql /mydata 

这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。

(2).新建用户以安全方式运行进程:

  
  
  1. # groupadd -r mysql 
  2. # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql 
  3. # chown -R mysql:mysql /mydata/data 

(3).安装并初始化mysql-5.5.20

  
  
  1. # tar xf mysql-5.5.20-linux2.6-i686.tar.gz  -C /usr/local 
  2. # cd /usr/local/ 
  3. # ln -sv mysql-5.5.20-linux2.6-i686  mysql 
  4. # cd mysql 
  5. # chown -R mysql:mysql  . 
  6. # scripts/mysql_install_db --user=mysql --datadir=/mydata/data 
  7. # chown -R root  . 

(4).mysql提供主配置文件:

  
  
  1. # cd /usr/local/mysql 
  2. # cp support-files/my-large.cnf  /etc/my.cnf 

并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:

thread_concurrency = 2

datadir = /mydata/data  

(5).mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。

  
  
  1. # cd /usr/local/mysql 
  2. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 
  3. # chkconfig --add mysqld 
  4. # chkconfig mysqld on 
  5. # service mysqld start

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

(6).输出mysqlman手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

(7).输出mysql的头文件至系统头文件路径/usr/include

这可以通过简单的创建链接实现:

  
  
  1. # ln -sv /usr/local/mysql/include  /usr/include/mysql 

(8)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:

  
  
  1. # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf 
  2. # ldconfig -v 

(9).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:

  
  
  1. # vim /etc/profile 
  2. PATH=$PATH:/usr/local/mysql/bin 
  3. # source /etc/profile 

2.172.16.22.3主机上安装mysql-5.5.22

(1) .新建用户以安全方式运行进程:

  
  
  1. # groupadd -r mysql 
  2. # useradd -g mysql -r -s /sbin/nologin -M mysql 

(2).安装并初始化mysql-5.5.22

  
  
  1. # tar xvf mysql-5.5.22-linux2.6-i686.tar.gz  -C /usr/local 
  2. # cd /usr/local/ 
  3. # ln -sv mysql-5.5.22-linux2.6-i686  mysql 
  4. # cd mysql 
  5. # chown -R mysql:mysql  . 
  6. # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data 
  7. # chown -R root  . 

(3).mysql提供主配置文件:

  
  
  1. # cd /usr/local/mysql 
  2. # cp support-files/my-large.cnf  /etc/my.cnf 

并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:

thread_concurrency = 2

datadir = /usr/local/mysql/data

(4).mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。

  
  
  1. # cd /usr/local/mysql 
  2. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 
  3. # chkconfig --add mysqld 
  4. # chkconfig mysqld on 
  5. # service mysqld start

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

(5).输出mysqlman手册至man命令的查找路径:

编辑/etc/man.config,添加如下行即可:

MANPATH  /usr/local/mysql/man

(6).输出mysql的头文件至系统头文件路径/usr/include

这可以通过简单的创建链接实现:

  
  
  1. # ln -sv /usr/local/mysql/include  /usr/include/mysql 
  
  
  1. # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf 
  2. # ldconfig -v 
  
  
  1. # vim /etc/profile 
  2. PATH=$PATH:/usr/local/mysql/bin 
  3. # source /etc/profile 

企鹅博客
  • 本文由 发表于 2019年9月12日 20:53:56
  • 转载请务必保留本文链接:https://www.qieseo.com/149271.html

发表评论