首页 > 技术文章 > MySQL+heartbeat+nfs做高可用

fansik 2017-01-16 16:53 原文

一、环境准备节点两个
node1:10.10.10.202
node2:10.10.10.203
nfs服务器:
node3:10.10.10.204
系统环境CentOS release 6.5 (Final)
二、在nfs服务器上创建MySQL的共享目录
mkdir /data
vim /etc/exports
/data 10.10.10.0/24(rw,no_root_squash)
重新导出文件系统
exportfs -rav
在客户端查看一下并尝试挂载
showmount -e 10.10.10.204
mount -t nfs 10.10.10.204:/data /data
添加MySQL的用户组以及用户(要保持每个节点的mysql用户和组的id是一致的哦)
groupadd -r -g 250 mysql
useradd -u 250 -g mysql mysql
setfacl -m u:mysql:rwx /data
node1:
groupadd -r -g 250 mysql
useradd -u 250 -g mysql mysql
node2:
groupadd -r -g 250 mysql
useradd -u 250 -g mysql mysql
node1和node2:
tar xf mariadb-10.0.28-linux-glibc_214-x86_64.tar.gz -C /usr/local/
ln -sv mariadb-10.0.28-linux-x86_64 mysql
chown root.mysql . -R
mkdir /data/{database,binlog}
chown -R mysql.mysql /data
初始化数据库
mariaDB10.0.28需要安装2.14版本的glibc而6.5是2.12
错误提示:
./bin/my_print_defaults: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bin/my_print_defaults)
解决办法:
升级glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.14
make
make install
export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
ln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
ln -sf /lib64/libc-2.14.so /lib64/libc.so.6
错误提示:
Installing MariaDB/MySQL system tables in '/data/database' ...
./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld)
解决办法:
升级gcc
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2
tar -jxvf gcc-4.8.0.tar.bz2
cd gcc-4.8.0
./contrib/download_prerequisites
cd ..
mkdir gcc-build-4.8.0
cd gcc-build-4.8.0
../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
错误提示:
make[2]: *** [configure-stage1-libcpp] 错误 1
make[2]: Leaving directory `/opt/gcc-build-4.8.0'
make[1]: *** [stage1-bubble] 错误 2
make[1]: Leaving directory `/opt/gcc-build-4.8.0'
make: *** [all] 错误 2
解决办法:
yum install gcc-c++
make install
确定新安装的GCC的路径,一般默认在/usr/local/bin下。
ls /usr/local/bin | grep gcc
查看gcc的版本可以用gcc -v
添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40
先用strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX查看支持的版本
ln -sf /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
复制MySQL的启动脚本和配置文件
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld off
vim /etc/mysql/my.cnf加入
datadir = /data/database
innodb_file_per_table = ON
log-bin=/data/binlog/master-bin
启动服务
/etc/init.d/mysqld start

推荐阅读