我放了一份我的配置文件在下面:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
datadir=/data/mysql_data/mysql
socket=/data/mysql_data/mysql/mysql.sock
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections=1000
server-id=19 #server的唯一标识(2台主机不同)
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
replicate-ignore-db = mysql #忽略不同步主从的数据库
replicate-ignore-db = information_schema
auto_increment_offset=1 #自增id起始值
auto_increment_increment=2 #每次自增数字
binlog_format=mixed # 主从复制的格式(mixed,statement,row,默认格式是 statement)
#max_binlog_size=1024M #binlog单文件最大值
binlog_checksum = none #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都l是binog_checksum=none
slave-skip-errors = all #跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断
expire_logs_days=0 # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
sync_binlog = 1 #确保binlog日志写入后与硬盘同步
port=3306
[client]
default-character-set=utf8
socket=/data/mysql_data/mysql/mysql.sock
7、双主同步设置
#启动mysql
service mysqld start
#登录mysql
mysql -uroot -pabcd@test2021
#在另外一台mysql上查看偏移量mysql-bin
show master status;
#master A的数据为master B的相关参数,如果是master B则是master B的参数
change master to master_host='192.168.3.3',master_user='salve_sync', master_password='slave@test2021', master_port=3306, master_log_file='mysql-bin.000001'
#开始同步
start slave;
#查看同步状态
show slave status\G
7、双主同步设置
#启动mysql
service mysqld start
#登录mysql
mysql -uroot -pabcd@test2021
#在另外一台mysql上查看偏移量mysql-bin
show master status;
#master A的数据为master B的相关参数,如果是master B则是master B的参数
change master to master_host='192.168.3.3',master_user='salve_sync', master_password='slave@test2021', master_port=3306, master_log_file='mysql-bin.000001'
#开始同步
start slave;
#查看同步状态
show slave status\G
8、将1-7步骤在master B也做一次
#查看同步状态
show slave status\G
出现以下东西mysql状态正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
9、测试
在master A上创建一个数据库:
#创建数据库
create database mydb;
#创建数据表
use mydb;
#创建表
create table test
(
id int,
name varchar(255),
)
在masterB上面查看
#查看数据库
show databases;
#查看表
use mydb;
show tables;
#删除表
drop table test;
#这时master A上面应该没有test表了。
#删除库
drop database mydb;
#这时master A上面应该没有mydb库了。
mysql双主完成。
附录
mysql启动方式
#一、启动方式
#1、使用linux命令service 启动:
service mysqld start
#2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld start
#3、使用 safe_mysqld 启动:
safe_mysqld&
#二、停止
#1、使用 service 启动:
service mysqld stop
#2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld stop
#3、 mysqladmin shutdown
#三、重启
#1、使用 service 启动:
service mysqld restart
#2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld restart
#备注:查看mysql端口是否已经使用,使用netstat -anp 命令查看服务器端口使用情况。
#第二部分,linux下重启mysql数据库的各种方法
#1、通过rpm包安装的MySQL
#代码示例:
service mysqld restart
/etc/inint.d/mysqld start
#2、从源码包安装的MySQL
#代码示例:
#// linux关闭MySQL的命令
$mysql_dir/bin/mysqladmin -uroot -p shutdown
#// linux启动MySQL的命令
$mysql_dir/bin/mysqld_safe &
#其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_safe位于MySQL安装目录的bin目录下。
#3、以上方法都无效时,通过强行命令:
#代码示例:
killall mysqld #关闭mysql