LNMP 分布式集群(三):MySQL主从数据库服务器的搭建

1,299 阅读2分钟

前言

LNMP 分布式集群的部署实践 系列文章:

回顾一下基本的架构:

架构(序号代表IP地址:192.168.177.1X)

这一篇我们部署7、8号机,MySQL数据库服务器。

配置

源码编译安装MySQL(7号机)

使用的mysql版本是 Generic Linux (Architecture Independent), Compressed TAR Archive(mysql-5.5.61.tar.gz) 。

# 安装依赖
yum -y install gcc-c++ cmake ncurses-devel
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.61.tar.gz
tar -zxf mysql-5.5.61.tar.gz
cd mysql-5.5.61
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install && cd ..

配置 MySQL(7号机)

# 配置数据保存目录和sock文件保存目录
vi /etc/my.cnf
datadir=/data/mysql
socket=/tmp/mysql.sock

# 必须给目录赋予权限
chown -R mysql:mysql /data/mysql

# 创建mysql用户
useradd -s /sbin/nologin -M mysql  # -m:自动建立用户的登入目录;-M:不要自动建立用户的登入目录;-s<shell>:指定用户登入后所使用的shell;

# 初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db

# 启动MySQL并添加到服务
cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
service mysql start
# 开放3306端口
netstat -tnlp | grep mysql
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save  # 不能用的话要么更新,要么更改配置文件,这在上一篇文章有讲
# 配置MySQL中的用户
cd /usr/local/mysql/bin
./mysql
UPDATE mysql.user SET password=password('123456') WHERE user='root';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
EXIT

./scripts/mysql_install_db

实现 MySQL 主从复制

  1. 在 7 号机(主)中完成 mysql 的安装之后,克隆出 8号机(从,注意网络IP的配置) 。

  2. 在7 号机(主)中开启 bin 日志(二进制日志,用于数据库增量备份,数据库之间复制等)。

vi /etc/my.cnf
[mysqld]
...
log-bin=mysqlbin-log  # 表示文件名为mysqlbin-log
server-id=17 # 表示服务器的唯一ID,可用服务器IP的最后一位

service mysql restart
cd /data/mysql
ll | grep mysqlbin # 当需要和其他服务器数据同步时,会通过这些日志读取数据库的更改记录
  1. 创建用于主从复制的用户
/usr/local/mysql/bin/mysql -uroot -p123456
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.177.18' IDENTIFIED BY '123456';
SHOW MASTER STATUS;
EXIT;

SHOW MASTER STATUS

  1. 配置从服务器
vi /etc/my.cnf
server-id=18

service mysql restart

/usr/local/mysql/bin/mysql -uroot -p123456
CHANGE MASTER TO master_host='192.168.177.17', master_user='slave',
master_password='123456', master_log_file='mysqlbin-log.000001', master_log_pos=263;
START SLAVE;
SHOW SLAVE STATUS \G

SHOW SLAVE STATUS \G

LNMP 分布式集群的部署实践 系列文章:


dfface 的版权声明:所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处,严禁商业用途!