Mysql数据库安装以及集群搭建

文档参考地址:https://www.cnblogs.com/ming-blogs/p/10962554.html

CentOS7安装MySql教程

1.先检查系统是否装有mysql

rpm -qa | grep mysql

2.下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

 如果报错: -bash: wget: 未找到命令

 安装插件  yum -y install wget

3.安装 mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

4.安装MySQL

sudo yum install mysql-server

5.重置MySQL密码

mysql -u root

如果报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

原因:原因是/var/lib/mysql的访问权限问题。

chown root /var/lib/mysql/

重启MySQL服务

service mysqld restart

接着登陆设置密码

mysql -u root

use mysql;

update user set password=password('123456') where user='root';

exit;

6.重启MySQL服务

service mysqld restart

接着设置Root账户远程连接密码,账户和密码都是 root

 mysql -u root -p

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 

重启服务器 

service mysqld restart

7.使用外网工具连接MySQL

连接mysql的用户名和密码都是 root

关闭防火墙

systemctl stop firewalld.service

 

Mysql集群搭建

首先需要按照以上步骤安装两台服务器

主节点服务器ip:192.168.0.105

从节点服务器ip:192.168.0.107

主节点服务器配置

1.进入配置页面命令

   vi /etc/my.cnf 

2.配置服务器id server_id 

这里的server_id 尽量配置为服务器地址的后3位 以用来区分

  server_id=105

3.开启日志文件(binLog)

  log-bin=mysql-bin 

配置文件的地址应该在 : # Recommended in standard MySQL setup,否则配置不起作用

如下图所示

4.重启mysql服务 

service mysqld restart

验证是否已经配置成功

5.show variables like '%server_id%';

能够查询对应配置文件中的server_id 说明已经配置成功,如下图,则表示配置成功。server_id=105

6.show master status;

能够看到同步的文件,和行数说明已经配置成功。

从服务器节点

1.进入配置页面命令

   vi /etc/my.cnf 

2.配置服务器id server_id 

这里的server_id 尽量配置为服务器地址的后3位 以用来区分

  server_id=107

3.开启日志文件(binLog)

  log-bin=mysql-bin 

4.添加需用同步的数据库

binlog_do_db=test   

5.重启mysql服务 

service mysqld restart

验证是否已经配置成功

6.show variables like '%server_id%';

能够查询对应配置文件中的server_id 说明已经配置成功

7.从服务器同步主服务器配置

master_host 主服务器地址

master_user 主服务器用户名

master_password 主服务器密码

master_log_file 主服务器配置文件

master_log_pos 主服务器读取配置文件的开始位置,也就是从第多少行开始读取。

change master to master_host='192.168.0.105',master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=120;

8.开始同步 

start slave

9.检查从服务器复制功能状态

SHOW SLAVE STATUS

如果二个从服务器是克隆主服务器的,这时候就会出现如下图的情况,二个服务器的server-uuid 是相同的,因为是克隆过来的。这时候运行  SHOW SLAVE STATUS  就会出现 Slave_IO_Running 为 No,而Slave_SQL_Running为Yes。说明IO同步出错,在Last_IO_Error 字段可以看到错误信息,如下。错误信息的意思就是server-uuid 重复了。也就是下图展示的效果。

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work。

如果出现这种情况,需要将 /var/lib/mysql  文件下的生成uuid 的文件删除,然后再重新启动 mysql 服务,就会重新在生成一个 server-uuid,在下图2中 也 显示了这个重新生成的server-uuid。

如果你的从服务器不是克隆主服务器而是重新安装的,那么就不会出现这种情况。直接运行  SHOW SLAVE STATUS 命令,如下图。则表示同步成功

存放server-uuid的 地址,可以在 /etc/my.cnf 文件中查看,如下图。

如何验证我们mysql 主从复制 集群搭建成功?

在105节点主服务器)新建test数据库,如果107节点(从服务器)能够同步过来,则说明环境搭建成功。

如下图,图一是没有创建test数据库之前,在105 服务器上创建一个test数据库,然后107关闭连接 再重新打开连接、或者直接刷新,发现test数据库已经同步过来了,如图2的效果。

同样的,在105服务器节点中的test数据库中新建表test001,然后在107节点中刷新,test001表也同步了过来,如下图。

如果同步执行出错,作如下修改。

show variables like '%server_id%';

show master status;

STOP SLAVE;

set GLOBAL sql_slave_skip_counter=1;

start slave;

SHOW SLAVE STATUS;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值