Mysql的主从复制-创新互联

Mysql的主从复制

10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有富阳免费网站建设让你可以放心的选择与我们合作。

 Mysql的主从复制,我们一般用来保证数据间的同步关系,比如有分公司,我们就需要把数据同步给千里之外的分公司,这样就很方便快捷。这个实验我们还实现了ssl安全连接,这样在同步的过程起到了安全保护数据的作用

我们这个实验用的mysql版本是5.7,相比较之前的版本会有一些不同

 Mysql5.7 支持原生systemd

 Mysql5.7 对于多核CPU、固态硬盘、锁有着更好的优化 更好的InnoDB存储引擎 更为健壮的复制功能

安装mysql

我所用的系统环境:centos7.2x86_64,这个版本自带mariadb-libs,所以要把它卸载:

Rpm -aq | grep mariadb

安装依赖包

安装cmake

【root@localhost  ~】#  tar zxf cmake-3.5.2.tar.gz

【root@localhost  ~】#  cd  cmake-3.5.2/

【root@localhost  cmake-3.5.2】#  ./bootstrap

使用 gmake && gmakeinstall 编译

【root@localhost  cmake-3.5.2】# gmake && gmake install

安装ncurses

【root@localhost  ~】# tar zxf ncurses-5.9.tar.gz

【root@localhost  ~】# cd ncurses-5.9/

【root@localhost  ncurses-5.9】# ./configure && make && make install

安装bison

【root@localhost  ~】# tar zxf bison-3.0.4.tar.gz

【root@localhost  ~】# cd bison-3.0.4/

【root@localhost  bison-3.0.4】# ./configure && make && make install

安装boost

【root@localhost  ~】# tar zxf boost_1_59_0.tar.gz

【root@localhost  ~】#cd boost_1_59_0/

【root@localhost  boost_1_59_0】# cd

【root@localhost  ~】#mv boost_1_59_0  /usr/local/boost

创建用户并添加到组

【root@localhost  ~】# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql

创建mysql安装目录和数据库目录

mkdir/usr/local/mysql                ---创建目录

mkdir/usr/local/mysql/data           ---数据库目录

编译安装mysql

Mysql的主从复制Mysql的主从复制

我们可以使用make && make install 进行编译安装,不过这条命令是只用单线程,安装过程过于缓慢,用下面这条命令可以根据CPU核数指定编译时的线程数,大大提高了安装的速度

make -j $(grep processor/proc/cpuinfo | wc -l)

-j:根据CPU核数指定编译时的线程数

 在安装所需模块的时候难免输入错误,当我们想重新运行cmake配置,需要删除CMakeCache.txt文件: #makeclean

  #rm -f CMakeCache.txt

优化Mysql的执行路径

Mysql的主从复制

设置权限并初始化MySQL系统授权表

#cd    /usr/local/mysql

# chown    -R    mysql:mysql    .---更改所有者,属组,注意是mysql .

注意:5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化)

#/usr/local/mysql/bin/mysqld      --initialize-insecure     --user=mysql    --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

Mysql的主从复制

Mysql的主从复制

生成一条mysql的初始密码(注意保存),后面要用到!

创建配置文件

#cd    /usr/local/mysql/support-files       ---进入MySQL安装目录支持文件目录

#cp    my-default.cnf    /etc/my.cnf     ---复制模板为新的配置文件,

修改文件中配置选项,如下图所示,添加如下配置项

#vi    /etc/my.cnf

Mysql的主从复制

配置mysql自动启动

Mysql的主从复制

我们开启mysql服务是会报错,原因是在mysqld.service,把默认的pid文件指定到了/var/run/mysqld/目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给mysql用户;

解决方法有两个:

一是创建mysqld.service文件里指定的目录/var/run/mysqld并给属主权限:chown -R mysql:mysql/var/run/mysqld

二是修改/usr/lib/system/system/mysqld.service文件里的指定路径,写入一个已存在的路径

Mysql的主从复制

Mysql的主从复制

systemctl daemon-reload重新加载

Mysql的主从复制再次启动mysql服务

Mysql的主从复制

连接数据库 ----密码是刚开的初始密码

Mysql的主从复制

修改库管理员用户root的密码

Mysql的主从复制

实现基于ssl全连接的主从复制

1)在主mysql创建SSL/RSA文件

#cd  /usr/local/mysql/bin  ---切换目录

#mysql_ssl_rsa_setup  --user=mysql  --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data  ---创建新的SSL文件

重启mysqld服务之前,我们要给server-key.pem权限

chmod +r /usr/local/mysql/data/server-key.pem

然后再重启服务 #systemctl restart mysqld

重启mysql服务,这时错误日志中就没有报错了

登录mysql,执行mysql>showvariableslike'%ssl%';

Mysql的主从复制

从上图可以看到mysql支持了ssl安全连接

Mysql的主从复制在主mysql上的操作完成,再生成一个复制帐号:REQUIRESSL

进入mysql :

Mysql -u root -p ‘123.abc’

Mysql>grant replication slave on *.* to ‘rep’@’192.168.1.%’identified by require ssl;

Mysql的主从复制在主mysql上启用二进制日志并重启mysql服务

Mysql的主从复制

添加下面的配置项

Log-bin=mysql-bin

重启mysql

Systemctlrestart mysqld

进入mysql

Mysql-u root -p ‘123.abc’

查看master状态

Showmaster status;

Mysql的主从复制注:要记住上图所显示的file和position的值,配置从服务器要用到防火墙允许3306/tcp通信

【root@localhost  ~】# firewall-cmd  --permanent  --add-port=3306/tcp

【root@localhost  ~】#firewall-cmd  -reload

配置从服务器

##可以克隆主mysql,修改ip即可。

从mysql服务器 的/etc/my.cnf文件内容

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 2

socket = /usr/local/mysql/mysql.sock

log-error = /usr/local/mysql/data/mysqld.err

relay-log = /usr/local/mysql/data/relay-log-bin

relay-log-index = /usr/local//mysqldata/slave-relay-bin.index

Mysql的主从复制注:server_id要唯一,不能和其他mysql主机的重复

Mysql的主从复制把主mysql生成的证书给从服务器

在主mysql中的/usr/local/mysql/daata路径下执行scp;

【root@localhost data】# scp ca.pem client-cert.pemclient-key.pem root@192.168.1.150:/usr/local/mysql/data/

注意:192.168.1.150是从mysql的ip,192.168.1.100是主mysql的ip地址。

!!!!!!设置client-key.pemr权限,要不然无法使用私钥

重启mysql服务

Systemctl restrt mysqld

进入数据库

Mysql-u root -p‘123.abc’

查看SSL是否被支持

Show variables ‘%ssl%’;

要求:have-openssl YES

  Have-ssl   YES

那么在配置主从复制之前可以在从mysql上用SSL连接主服务器试试:

  cd /usr/local/mysql/data

  Mysql --ssl-ca=ca.pem ssl-cert=client-cert.pem ssl-key=client-key.pem -u rep

  -p123456 -h 192.168.1.100

进入数据库后,使用\s查看数据库详细信息,会发现是主mysql的ip,ssl测试连接成功

最后开始配置主从replicate,登录从mysql,在从上mysql上执行:

Mysql的主从复制

Mysql的主从复制

Mysql的主从复制

开启从mysql服务器

Mysql的主从复制

Mysql的主从复制

注意:因为我们的从mysql是克隆的主mysql,所以我们要修改从mysql的uuid

路径是:/usr/local/mysql/daa/auto.cnf

修改完成之后重启mysqld服务

Systemctl restart mysqld

登录从mysql 执行

show slave status\G;

会发现:

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

测试:在主mysql上创建库和表,在从mysql上会立刻进行同步!!!!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:Mysql的主从复制-创新互联
网址分享:http://pwwzsj.com/article/ecssi.html