MySQL-高可用集群搭建
1. 简介
1. MySQL使用非常广泛,主要原因是轻量级(相比于Oracle),开源的(免费)。使用的多,涉及到的话题就多,主要有:
1. 性能优化
2. 高可用
3. 安全
4. 备份
5. 集群
6. 横向扩展
7. 纵向扩展
8. 负载均衡
9. 读写分离等。
2. 这节主要介绍下 CentOS7 下的高可用集群环境的搭建,后续更新相关的其他知识点
2. 环境安装
1. 先检查系统是否装有 MySQL
1. rpm -qa | grep mysql
2. 返回为空则表示没有安装,不管是够有返回值都可以继续安装
2. 下载MySQL的repo源
1. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 报错 : -bash wget : 未找到命令
3. 安装插件 : yum -y install wget
3. 安装mysql-community-release-el7-5.noarch.rpm包
1. sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
4. 安装 MySQL
1. sudo yum install mysql-server
5. 重置MySQL密码
1. mysql -u root
2. 报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
3. 原因是/var/lib/mysql的访问权限问题。 解决 chown root:root /var/lib/mysql/
6. 重启 MySQL服务
1. service mysqld restart
7. 设置登录密码
1. mysql -u root
2. use mysql; 进入mysql database
3. update user set password=password('123456') where user='root'; 设置root用户的密码
4. exit; 退出重启服务 service mysqld restart
8. 接着设置Root账户远程连接密码
1. mysql -u root -p
2. GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
3. 重启服务器 service mysqld restart
9. 使用外网工具连接MySQL
1. 关闭防火墙或者开放端口(默认为3306)
2. systemctl stop firewalld
3. MySQL 主从复制配置(一主一从)
1. 主服务器节点
1. 修改 MySQL 配置文件
2. vi /etc/my.cof 新增一下内容
3. server_id=177 ###服务器id,最好是ip最后一个,保证唯一
4. log-bin=mysql-bin ###开启日志文件
5. 重启mysql服务 service mysqld restart
6. 验证是否已经配置成功 show variables like '%server_id%';能够查询对应配置文件中的server_id 说明已经配置成功
7. show master status; 能够看到同步的文件,和行数 说明已经配置成功。
2. 从服务器节点
1. 修改 MySQL 配置文件
2. server_id=178 ###从服务器server_id
3. log-bin=mysql-bin ###日志文件同步方式
4. binlog_do_db=test ###同步数据库
5. 重启mysql服务 service mysqld restart
6. 验证是否已经配置成功,show variables like '%server_id%'; 能够查询对应配置文件中的server_id 说明已经配置成功
7. 从服务器同步主服务器配置 :
change master to master_host='主服务器ip',master_user='root',master_password='root',
master_log_file='主服务器查询的binLog日志文件',master_log_pos=行数; -- 主服务节点第7步查询到的结果
8. 开始同步 start slave
9. 检查从服务器复制功能状态 SHOW SLAVE STATUS
10. 可以通过 外网工具连接mysql 操作主服务器然后查看从服务器是否生效
11. 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.
解决办法 :因为服务器克隆的时候交UUID产生了重复,
cd /var/lib/mysql
rm -rf auto.cnf
重启服务器即可
service mysqld restart
4. MySQL 主从复制原理(一主一从)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。