MySQL数据库实现主从同步与读写分离(实战!可跟做!)

实验拓扑图:

MySQL主从同步:

一、安装NTP服务,同步时间

1、在MySQL主服务器上安装NTP服务

[root@master ~]# yum install ntp -y
.........//省略过程
[root@master ~]#

2、修改NTP服务配置文件

[root@master ~]# vim /etc/ntp.conf 
server 127.127.52.0      //本地时钟源
fudge 127.127.52.0 stratum 8     //设置时间层级为8
[root@master ~]#

3、开启服务NTP服务,关闭防火墙

[root@master ~]# systemctl start ntpd   //开启服务
[root@master ~]# systemctl stop firewalld.service    //关闭防火墙
[root@master ~]# setenforce 0   //关闭增强性安全功能

4、在MySQL从服务器1上,安装NTP服务,向主服务器同步时间

[root@slave1 ~]# yum install ntp ntpdate -y
........//省略过程
[root@slave1 ~]# systemctl start ntpd    //开启服务
[root@slave1 ~]# systemctl stop firewalld.service    //关闭防火墙
[root@slave1 ~]# setenforce 0   //关闭增强性安全功能
[root@slave1 ~]# /usr/sbin/ntpdate 192.168.52.133    //同步时间
22 Nov 14:43:50 ntpdate[46222]: the NTP socket is in use, exiting
[root@slave1 ~]# 

5、在MySQL从服务器2上,安装NTP服务,向主服务器同步时间

[root@slave2 ~]# yum install ntp ntpdate -y
........//省略过程
[root@slave2 ~]# systemctl start ntpd    //开启服务
[root@slave2 ~]# systemctl stop firewalld.service     //关闭防火墙
[root@slave2 ~]# setenforce 0   //关闭增强性安全功能
[root@slave2 ~]# /usr/sbin/ntpdate 192.168.52.133    //同步时间
22 Nov 14:46:12 ntpdate[69300]: the NTP socket is in use, exiting
[root@slave2 ~]# 

二、源码编译安装MySQL服务

1、将宿主机上的工具包共享出去

2、将MySQL源码包解压到“/opt/”目录下

[root@master ~]# mkdir /mnt/tools    //创建目录
[root@master ~]# mount.cifs //192.168.100.50/tools /mnt/tools/    //挂载共享目录
Password for root@//192.168.100.50/tools:  
[root@master ~]# cd /mnt/tools/MySQL/
[root@master MySQL]# ls
amoeba-mysql-binary-2.2.0.tar.gz  jdk-6u14-linux-x64.bin  mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz               mysql-5.5.24.tar.gz
[root@master MySQL]# tar zxvf mysql-5.5.24.tar.gz -C /opt/    //解压
........//省略过程

3、安装编译所需环境包

[root@master MySQL]# cd /opt/mysql-5.5.24/
[root@master mysql-5.5.24]# yum -y install \
> ncurses \
> ncurses-devel \
> bison \
> cmake \
> make \
> gcc \
> gcc-c++

4、创建mysql用户和安装目录

[root@master mysql-5.5.24]# useradd -s /sbin/nologin mysql    //创建用户
[root@master mysql-5.5.24]# mkdir /usr/local/mysql     //创建目录
[root@master mysql-5.5.24]# 

5、配置MySQL服务

[root@master mysql-5.5.24]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    //安装路径
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \    //定义sock文件连接数据库文件
> -DDEFAULT_CHARSET=utf8  \    //指定字符集,utf8支持中文字符
> -DDEFAULT_COLLATION=utf8_general_ci \     //指定字符集默认
> -DWITH_EXTRA_CHARSETS=all \         //指定额外支持的其它字符集
> -DWITH_MYISAM_STORAGE_ENGINE=1 \    //存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_DATADIR=/home/mysql \     //指定数据文件目录
> -DMYSQL_USER=mysql \     //用户
> -DMSQL_TCP_PROT=3306   //端口

6、编译安装MySQL

[root@master mysql-5.5.24]# make && make install
.........//省略过程
[root@master mysql-5.5.24]#

7、对MySQL服务进行相关优化

[root@master mysql-5.5.24]# chown -R mysql.mysql /usr/local/mysql/   //修改属主属组
[root@master mysql-5.5.24]# 
[root@master mysql-5.5.24]# vim /etc/profile   //进入环境变量配置文件
export PATH=$PATH:/usr/local/mysql/bin/    //添加mysql环境变量
[root@master mysql-5.5.24]# source /etc/profile    //重新加载文件
[root@master mysql-5.5.24]# 
[root@master mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf   //复制配置文件
cp: overwrite ‘/etc/my.cnf’? yes
[root@master mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld    //复制管理文件
[root@master mysql-5.5.24]# 
[root@master mysql-5.5.24]# chmod 755 /etc/init.d/mysqld    //添加执行权限
[root@master mysql-5.5.24]# chkconfig --add /etc/init.d/mysqld    //让service服务能识别mysqld
[root@master mysql-5.5.24]# chkconfig mysqld --level 35 on   //在级别3、5中启动
[root@master mysql-5.5.24]#

8、初始化数据库

[root@master mysql-5.5.24]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \   //用户
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \    //工作目录
> --datadir=/home/mysql    //数据目录

9、修改管理文件

[root@master mysql-5.5.24]# vim /etc/init.d/mysqld 
basedir=/usr/local/mysql    //指定工作目录
datadir=/home/mysql    //指定数据目录

10、开启MySQL服务

[root@master mysql-5.5.24]# service mysqld start 
Starting MySQL.. SUCCESS! 
[root@master mysql-5.5.24]# 

11、测试登录数据库

[root@master mysql-5.5.24]# mysqladmin -u root password 'abc123'   //设置登录用户密码
[root@master mysql-5.5.24]# mysql -u root -pabc123    //登录数据库
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.24-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q   //退出
Bye
[root@master mysql-5.5.24]# 

12、在从服务器slave1上安装MySQL数据库(过程同上,不多解释)

[root@slave1 ~]# mkdir /mnt/tools
[root@slave1 ~]# mount.cifs //192.168.100.50/tools /mnt/tools/
Password for root@//192.168.100.50/tools:  
[root@slave1 ~]# cd /mnt/tools/MySQL/
[root@slave1 MySQL]# ls
amoeba-mysql-binary-2.2.0.tar.gz  jdk-6u14-linux-x64.bin  mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz               mysql-5.5.24.tar.gz
[root@slave1 MySQL]# tar zxvf mysql-5.5.24.tar.gz -C /opt/
.......//省略过程
[root@slave1 MySQL]# cd /opt/mysql-5.5.24/
[root@slave1 mysql-5.5.24]# useradd -s /sbin/nologin mysql
[root@slave1 mysql-5.5.24]# yum -y install \
> ncurses \
> ncurses-devel \
> bison \
> cmake \
> make \
> gcc \
> gcc-c++
..........//省略过程
[root@slave1 mysql-5.5.24]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值