计算机知识

当前位置:澳门新葡萄京 > 计算机知识 > 二、配置mysql的高可用

二、配置mysql的高可用

来源:http://www.hhmtch.com 作者:澳门新葡萄京 时间:2019-11-08 09:44

操作目的:

基于Corosync和NFS服务器实现MySQL的高可用

规划:

图片 1

准备工作:根据规划图,设置三台主机的主机名和地址
(这里不再给出具体过程)

一、配置nfs服务器

#fdisk /dev/sda  创建一个大小为20G 类型为8e的分区 本文为/dev/sda5   #partprobe /dev/sda  #pvcreate /dev/sda5  #vgcreate myvg /dev/sda5  #lvcreate -L 10G -n mydata myvg  #mke2fs -j -L MYDATA /dev/myvg/mydata   #mkdir /mydata  #vim /etc/fstab  添加  LABEL=MYDATA            /mydata                 ext3    defaults        0 0  #mount -a   添加用户  # groupadd -g 306 -r mysql  # useradd -g mysql -r -u 306 -s /sbin/nologin mysql  # id mysql  uid=306(mysql) gid=306(mysql) groups=306(mysql) context=root:system_r:unconfined_t:SystemLow-SystemHigh   让mysql用户对/mydata目录有读写的权限  # chown -R mysql:mysql /mydata/   通过nfs共享/mydata  #vim /etc/exports  /mydata         172.16.220.11(rw,no_root_squash) 172.16.220.12(rw,no_root_squash)   #service nfs start  # showmount -e localhost  Export list for localhost:
/mydata 172.16.220.12,172.16.220.11  

二、配置mysql的高可用

1  配置node1 node2的时间同步和ssh互联

node1:  #hwclock -s  #ssh-keygen -i rsa  #vim /etc/hosts  172.16.220.11 node1  172.16.220.12 node2  # ssh-copy-id -i .ssh/id_rsa.pub root@node2  # ssh node2 'ifconfig'   node2:  #hwclock -s  #ssh-keygen -i rsa  #vim /etc/hosts  172.16.220.11 node1  172.16.220.12 node2  # ssh-copy-id -i .ssh/id_rsa.pub root@node1  # ssh node1 'ifconfig'   

 

2  添加用户

node1 node2:  # groupadd -r -g 306 mysql  # useradd -g mysql -u 306 -r mysql  # mkdir /mydata  # mount -t nfs 172.16.220.22:/mydata /mydata/  # ls /mydata/  lost found   验证mysql用户是否对/mydata目录有写的权限  # su - mysql  su: warning: cannot change directory to /home/mysql: No such file or directory  -bash-3.2$ cd /mydata  -bash-3.2$ mkdir data           //创建这个目录,作为mysql的数据目录-bash-3.2$ ls  data  lost found   

 

3  安装mysql

node1 :  安装 mysql-5.5.22-linux2.6-i686.tar.gz   # tar xf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local/  # cd /usr/local/  # ln -sv mysql-5.5.22-linux2.6-i686 mysql  #cd mysql   初始化mysql       #chown -R mysql:mysql .  # scripts/mysql_install_db --user=mysql --datadir=/mydata/data/    提供配置文件  # cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf  #vim /etc/my.cnf  [mysqld]中修改  thread_concurrency = 2 datadir = /mydata/data   提供脚本  # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  # chkconfig --add mysqld  # service mysqld start  Starting MySQL........                                     [  OK  ]  # /usr/local/mysql/bin/mysql   连上mysql       停止服务  #service mysqld stop  # chkconfig mysqld off  # chkconfig --list mysqld      //保证都是off   node2:安装 mysql-5.5.22-linux2.6-i686.tar.gz   # tar xf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local/  # cd /usr/local/  # ln -sv mysql-5.5.22-linux2.6-i686 mysql  #cd mysql  #chown -R root:mysql   # cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf  #vim /etc/my.cnf  [mysqld]中修改  thread_concurrency = 2 datadir = /mydata/data  # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  # chkconfig --add mysqld  # service mysqld start  Starting MySQL........                                     [  OK  ]  # /usr/local/mysql/bin/mysql   连上mysql #service mysqld stop  # chkconfig mysqld off  # chkconfig --list mysqld      //保证都是off   到此两个mysql服务器可以实现nfs的共享存储了   

 

4  添加集群服务

准备的包:  

corosync-1.2.7-1.1.el5.i386.rpm                                  corosynclib-1.2.7-1.1.el5.i386.rpm     pacemaker-1.1.5-1.1.el5.i386.rpm  pacemaker-libs-1.1.5-1.1.el5.i386.rpm         heartbeat-3.0.3-2.3.el5.i386.rpm         heartbeat-libs-3.0.3-2.3.el5.i386.rpm    cluster-glue-1.0.6-1.6.el5.i386.rpm         cluster-glue-libs-1.0.6-1.6.el5.i386.rpm                               perl-TimeDate-1.16-5.el5.noarch.rpm  libesmtp-1.0.4-5.el5.i386.rpm           resource-agents-1.0.4-1.1.el5.i386.rpm   

下载到node1 node2 的/root目录下

4.1安装corosync

node1 node2:  #yum -y --nogpgcheck localinstall *.rpm  

 

4.2 corosync的配置文件

node1:  # cd /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf  #vim /etc/corosync.conf  修改内容如下:  secauth: on  bindnetaddr: 172.16.0.0  mcastaddr: 226.99.1.1   to_logfile: yes   to_syslog: no   接着编辑添加如下内容:  service {          ver: 0          name: pacemaker          use_mgmtd: yes  }   aisexec {          user: root          group: root  }   生成节点间通信时用到的认证密钥文件:  # corosync-keygen        //会自动的在/etc/corosync目录下生成一个key文件,是二进制格式的,权限为400   将corosync和authkey复制至node2:  # scp -p authkey corosync.conf node2:/etc/corosync/   分别为两个节点创建corosync生成的日志所在的目录:  # mkdir  /var/log/cluster  # ssh node2 'mkdir  /var/log/cluster'   启动服务  # service corosync start  # ssh node2 '/etc/init.d/corosync start'   查看工作状态  # crm status ============  Last updated: Tue Aug 21 09:07:33 2012  Stack: openais  Current DC: node1 - partition with quorum  Version: 1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f  2 Nodes configured, 2 expected votes  0 Resources configured. ============   Online: [ node1 node2 ]   

图片 2

本文由澳门新葡萄京发布于计算机知识,转载请注明出处:二、配置mysql的高可用

关键词: