基于centos7操作
1、查看是否原来安装了mysql
yum list installed | grep mysql
2、如果版本不对,可以删除
yum remove mysql mysql-server mysql-libs mysql-server
rpm -ev mysql-community-common-5.7.36-1.el7.x86_64
rpm -ev mysql57-community-release-el7-8.noarch
3、安装mysql,基于rpm
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum install -y mysql-server
4、设置开机启动mysql
systemctl enable mysqld.service
5、启动mysql服务
systemctl start mysqld.service
6、查看MySql默认密码
grep 'temporary password' /var/log/mysqld.log
7、登录mysql
mysql -uroot -p
8、设置密码
SET PASSWORD = PASSWORD('alliance');
9、如果报错,修改密码规则
set global validate_password_policy=LOW;
10、mysql设置远程登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'alliance' WITH GRANT OPTION; //这里的alliance要换成你自己mysql数据库的密码
11、配置文件
vi /etc/my.cnf
主:
[mysqld]
server-id=1
log-bin=mysql-bin
设置不要复制的数据库(可设置多个)
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
设置需要复制的数据库(可设置多个)
binlog-do-db=test
设置logbin格式
binlog_format=STATEMENT
从:
[mysqld]
从服务器唯一ID
server-id=2
启用中继日志
relay-log=mysql-relay
12、校验两个服务器mysql是否能连接
主数据库服务器测试从数据库
mysql -uroot -p -h192.168.133.130 -P3306
从数据库服务器测试主数据库
mysql -uroot -p -h192.168.133.129 -P3306
13、查看主服务器mysql状态
查询server_id是否可配置文件中一致
show variables like 'server_id';
若不一致,可设置临时ID(重启失效)
set global server_id = 1;
查询Master状态,并记录 File 和 Position 的值
show master status;
14、查看从服务器mysql状态并启动主从复制
查询server_id是否可配置文件中一致
show variables like 'server_id';
若不一致,可设置临时ID(重启失效)
set global server_id = 2;
设置主数据库参数
change master to master_host='192.168.133.129',master_port=3306,master_user='slave',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=156;
开始同步
start slave;
注意:
每启动一次主服务器,master_log_file和master_log_pos都会变,注意从主服务器中查看mysql状态来查看->show master status;master_log_pos就是主mysql运行的log位置
15、常见错误排查:
1、从节点状态(会打印一些错误信息):
show slave status \G;
2、查看详细错误信息
select * from performance_schema.replication_applier_status_by_worker\G;
3、如果从节点停止了,要重新启动,可以查询错误节点pod位置,跳过重新
change master to master_host='192.168.133.129',master_port=3306,master_user='slave',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=156;
也可以根据错误信息分析具体问题
4、如果报错
STOP SLAVE IO_THREAD;
5、如果是存在数据库,要先同步存在的数据库
导出数据库
mysqldump -h localhost -uroot -proot example > /example.sql
导入数据库,自己百度
6、对应的日志文件如果配置文件没有配置,则保存在默认位置,
cd /var/lib/mysql
也可以查找一下mysql文件
find / -name mysql
借鉴文章:
mysql安装:https://blog.csdn.net/qq_40241957/article/details/90343651
mysql主从复制:https://www.cnblogs.com/cao-lei/p/13603043.html