mysql 集群配置是怎样的
今天就跟大家聊聊有关mysql 集群配置是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
mysql 复制
主节点ip:192.168.56.2
从节点ip:192.168.56.3
1 双节点添加同步账户并关闭数据库:
节点 1
注意ip指定为从节点ip
[root@mysql1 home]# mysql -uroot -poracle
mysql> GRANT REPLICATION SLAVE ON *.* to 'syc'@'192.168.56.3' identified by 'syc';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.33 sec)
mysql> exit
Bye
[root@mysql1 home]# /etc/init.d/mysql stop
Shutting down MySQL..[确定]
节点2
注意其中ip指定主节点ip
[root@mysql2 home]# mysql -uroot -poracle
mysql> GRANT REPLICATION SLAVE ON *.* to 'syc'@'192.168.56.2' identified by 'syc';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.33 sec)
mysql> exit
Bye
[root@mysql2 home]# /etc/init.d/mysql stop
Shutting down MySQL..[确定]
2 修改my.cnf文件
节点1 my.cnf文件
[root@mysql1 home]# vi /etc/my.cnf
[client]
#客户端字符集
default-character-set=utf8
socket = /home/mysql/mysql.sock
[mysqld]
socket = /home/mysql/mysql.sock
server-id=1
#开启binlog
log-bin=mysql-bin
# 这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,
# 同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作
log-slave-updates
# 在复制过程中,由于各种的原因,从服务器可能会遇到执行BINLOG中的SQL出错的情况,在默认情况下,服务器会停止复制进程,不再进行同步,等到用户自行来处理。
slave-skip-errors=all
# 这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性
sync_binlog=1
# 应设为整个结构中服务器的总数
auto-increment-increment = 2
# 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突
auto-increment-offset = 1
#字符集
character-set-server=utf8
#不区分大小写
lower_case_table_names=1
[mysql]
#字符集
default-character-set=utf8
auto-rehash
节点2 my.cnf文件
[root@mysql2 home]# vi /etc/my.cnf
[client]
socket = /home/mysql/mysql.sock
#客户端字符集
default-character-set=utf8
[mysqld]
server-id=2
socket = /home/mysql/mysql.sock
#字符集
character-set-server=utf8
#不区分大小写
lower_case_table_names=1
#开启binlog
log-bin=mysql-bin
# 这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,
# 同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作
log-slave-updates
#在复制过程中,由于各种的原因,从服务器可能会遇到执行BINLOG中的SQL出错的情况,在默认情况下,服务器会停止复制进程,不再进行同步,等到用户自行来处理。
slave-skip-errors=all
#这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性
sync_binlog=1
# 应设为整个结构中服务器的总数
auto-increment-increment = 2
# 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突
auto-increment-offset = 1
[mysql]
#字符集
default-character-set=utf8
auto-rehash
3 启动mysql数据库
节点1
[root@mysql1 home]# /etc/init.d/mysql start
Starting MySQL..[确定]
节点2
[root@mysql2 home]# /etc/init.d/mysql start
Starting MySQL.[确定]
记录binlog位置
节点1
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
节点2
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
4 启动复制
主节点
mysql> stop slave;
mysql> change master to master_host='192.168.56.3',master_user='syc',master_password='syc',master_port=3306,master_log_file='mysql-bin.000002',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.2
Master_User: syc
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 927
Relay_Log_File: mysql2-relay-bin.000002
Relay_Log_Pos: 793
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
从节点
mysql> stop slave;
mysql> change master to master_host='192.168.56.2',master_user='syc',master_password='syc',master_port=3306,master_log_file='mysql-bin.000003',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.3
Master_User: syc
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 927
Relay_Log_File: mysql1-relay-bin.000002
Relay_Log_Pos: 580
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试:
主节点
mysql> create database bbbbb;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aaaaa |
| bbbbb |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
从节点:
mysql> create database aaaaa;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aaaaa |
| bbbbb |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
测试完成:
注意:
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两项必须是yes
如果出现以下问题:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
需要查看是否创建用户权限时出现问题或链接信息错误或账号失效。
看完上述内容,你们对mysql 集群配置是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。