【MySQL】MySQL(四)存储引擎、索引、锁、集群 (9)

image

修改配置网卡

在第二个虚拟机中,生成全新mac地址

image

image

重启网络

// 重启网络 service network restart //查看ip地址 ip addr

修改mysql配置文件,更改uuid

在第二个服务器上,修改mysql的uuid

// 编辑配置文件 vi /var/lib/mysql/auto.cnf // 将server-uuid更改

启动MySQL并查看

//将两台服务器的防火墙关闭 systemctl stop firewalld //启动两台服务器的mysql service mysqld restart //启动两台服务器的mycat cd /root/mycat/bin ./mycat restart //查看监听端口 netstat -ant|grep 3306 netstat -ant|grep 8066 //使用sqlyog测试连接 主从复制

主从复制的概念

为了使用Mycat进行读写分离,我们先要配置MySQL数据库的主从复制。

从服务器自动同步主服务器的数据,从而达到数据一致。

进而,我们可以写操作时,只操作主服务器,而读操作,就可以操作从服务器了。

原理:主服务器在处理数据时,生成binlog日志,通过对日志的备份,实现从服务器的数据同步。

image

主服务器的配置

在第一个服务器上,编辑mysql配置文件

// 编辑mysql配置文件 vi /etc/my.cnf //在[mysqld]下面加上: log-bin=mysql-bin # 开启复制操作 server-id=1 # master is 1 innodb_flush_log_at_trx_commit=1 sync_binlog=1

登录mysql,创建用户并授权

// 登录mysql mysql -u root -p // 去除密码权限 SET GLOBAL validate_password_policy=0; SET GLOBAL validate_password_length=1; // 创建用户 CREATE USER 'user'@'%' IDENTIFIED BY 'gonghr'; // 授权 GRANT ALL ON *.* TO 'user'@'%';

重启mysql服务,登录mysql服务

// 重启mysql service mysqld restart // 登录mysql mysql -u root -p

查看主服务器的配置

// 查看主服务器配置 show master status;

image

从服务器的配置

在第二个服务器上,编辑mysql配置文件

// 编辑mysql配置文件 vi /etc/my.cnf // 在[mysqld]下面加上: server-id=2

登录mysql

// 登录mysql mysql -u root -p // 执行 use mysql; drop table slave_master_info; drop table slave_relay_log_info; drop table slave_worker_info; drop table innodb_index_stats; drop table innodb_table_stats; source /usr/share/mysql/mysql_system_tables.sql;

重启mysql,重新登录,配置从节点

// 重启mysql service mysqld restart // 重新登录mysql mysql -u root -p // 执行 change master to master_host='主服务器ip地址',master_port=3306,master_user='user',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=4642;

重启mysql,重新登录,开启从节点

// 重启mysql service mysqld restart // 重新登录mysql mysql -u root -p // 开启从节点 start slave; // 查询结果 show slave status\G; //Slave_IO_Running和Slave_SQL_Running都为yes才表示同步成功。

image

测试

sqlyog连接主服务器

-- 主服务器创建db1数据库,从服务器会自动同步 CREATE DATABASE db1;

sqlyog连接从服务器

-- 从服务器创建db2数据库,主服务器不会自动同步 CREATE DATABASE db2;

启动失败的解决方案

启动失败:Slave_IO_Running为 NO 方法一:重置slave slave stop; reset slave; start slave ; 方法二:重设同步日志文件及读取位置 slave stop; change master to master_log_file=’mysql-bin.000001’, master_log_pos=1; start slave ; 读写分离

读写分离的概念

写操作只写入主服务器,读操作读取从服务器。

在主服务器上修改server.xml

user标签主要用于定义登录mycat的用户和权限。如上面定义用户名mycat和密码123456,该用户可以访问的schema的HEIMADB逻辑库。

<user defaultAccount="true"> <property>123456</property> <property>HEIMADB</property> <!-- 表级 DML 权限设置 --> <!-- <privileges check="false"> <schema dml="0110" > <table dml="0000"></table> <table dml="1111"></table> </schema> </privileges> --> </user>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwjzpj.html