赞
踩
目录
我这是使用RPM包安装,可前往mysql官网下载或用我网盘的包,
百度网盘链接:https://pan.baidu.com/s/1vyHmyJNojTetuFZKnLNYPw?pwd=aqws
提取码:aqws
官网下载安装包:MySQL :: Download MySQL Community Server (Archived Versions)
- #关闭防火墙并设置开机不启动
- systemctl stop firewalld
-
- systemctl disable firewalld
-
- #关闭SElinux安全模式
- setenforce 0
-
- #设置永久关闭selinux
-
- vi /etc/selinux/config
-
- #修改SELINUX:
- SELINUX=disabled
-
- #重启生效
- reboot
- #创建一个放包的路径
- mkdir -p /usr/local/mysql
- #进入包在的路径
- cd -p /usr/local/mysql
-
- #解压
- tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
- rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
-
- #安装此包时会报错(看下图)
- #是原来自带的,卸了即可
- rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
-
- #卸载
- yum remove mysql-libs
-
- #再次安装
- rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
-
- #把一些依赖安装一下
- sudo yum install -y libaio
-
- yum install -y net-tools.x86_64
-
-
- #继续安装包
- rpm -ivh mysql-community-libs-compat-8.0.28-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
-
- #最后一一个包 要语句后面加上 --nodeps --force,安装时忽
- 略依赖关系
- rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm --nodeps --force
- #启动
- systemctl start mysqld
-
- #查看初始密码(要先启动才有)
- cat /var/log/mysqld.log |grep password
-
- #登陆并修改密码(密码自取,有大小写字令母符号数字)
- mysql -u root -p
-
- alter user 'root'@'localhost' identified by 'password';
-
- #配置远程连接
- use mysql;
-
- update user set host='%' where user='root';
-
- #刷新才生效
- flush privileges;
-
- #最好再重启一下数据库
- systemctl restart mysqld
- #执行命令查看 auto.cnf 文件的位置
- find -name auto.cnf #执行命令后没有的话,看最后一行
- vi 到上面命令查询到的地址,修改 uuid 的值,随便改,只要不一样就可以了
- #server-uuid=sgsgsg455sfsfgsg4
- #修改后,进库查看主从两库的 UUID 是不是不一样
- mysql -u root -p
- show variables like '%server_uuid%';
-
-
- #如改后还是一样,在/var/lib/mysql 可能也有一个 auto.cnf,修改一下即可
- vi /var/lib/mysql/auto.cnf
-
- #修改后,进库查看主从两库的 UUID 是不是不一样
- mysql -u root -p
- show variables like '%server_uuid%';
- 进入 /etc/my.cnf 添加或修改配置
- vi /etc/my.cnf
-
- #添加配置如下
- #在[mysqld]下添加
- server-id = 1 #节点 ID,确保唯一。建议放在[mysqld]下的首行,不然可能会有报错
- log-bin = mysql-bin #binlog 日志位置
-
- #以下参数选填(可不填)
- binlog_format = mixed #binlog 日志格式,mysql 默认采用 statement,建议使用 mixed
- expire_logs_days = 7 #binlog 过期清理时间
- max_binlog_size = 100m #binlog 每个日志文件大小
- binlog_cache_size = 5m #binlog 缓存大小
- max_binlog_cache_size= 256m #最大 binlog 缓存大
- binlog-ignore-db=mysql #不生成日志文件的数据库,可用逗号拼接
- binlog-do-db= 数据库名 #需要同步的数据库
- binlog-ignore-db = 数据库名 #不需要同步的数据库
重 MYSQL 启服务
service mysqld restart
进入数据库,查看主库(master)信息, File 和 Position 信息要记下,后面要用,可复制出来先放 txt 文档中先
- mysql -u root -p
-
- show master status;
- vi /etc/my.cnf
-
- #在[mysqld]下添加
- server-id=2 #节点 ID,确保唯一。建议放在[mysqld]下的首行,不然可能会有报错
- log-bin= mysql-bin #binlog 日志位置
- relay-log= slave-relay-bin #必须开启,从主数据库同步的 binlog 会写入到该目录下
service mysqld restart
- #从库进入数据库
- mysql -u root -p
-
- #停掉从库的服务,一定要停掉服务再去执行下面的命令
- stop slave;
-
- #配置关联主库(master),
- #MASTER_HOST : 要连接的主服务器的 ip 地址
- #MASTER_USER : 要连接的主服务器的用户名
- #MASTER_PASSWORD : 设置要连接的主服务器的密码
- #以下两个填主库执行 show master status; 得到的信息
- #MASTER_LOG_FILE :要连接的主服务器的 bin 日志的日志名称
- #MASTER_LOG_POS :要连接的主服务器的 bin 日志的记录位置
-
- change master to master_host='主节点IP', master_port=3306,master_user='root',master_password='数据库密码',master_log_file='mysql-bin.000001',master_log_pos=157;
-
- #启动
- start slave
-
- #查看主从同步状态,没有报错启动成功
- show slave status \G;
测试:连接主数据库,建库建表看是否同步到从库
- #切断对主库的数据传输,进入主库备库设置只读
-
- mysql -u root -p
-
- set global read_only=ON;
- set global super_read_only=ON;
- #从库查看主从同步状态
-
- show slave status \G
图中两处也还为Yes
- #比对主备两边的 GTID 是否一致(要是一样的)
-
- select @@global.gtid_executed;
我这都是为空的,测试后未发现对主从库切换,数据同步有影响
- #从库停掉复制进程,并清空主从信息
-
- stop slave;
- reset slave all;
-
- #从库关闭只读开启读写,转为新主库
-
- set global read_only=off;
- set global super_read_only=off;
-
- #查看新主库信息, File 和 Position 信息要记下,后面要用,可复制出来先放 txt 文档中先
-
- show master status;
- #停掉原主库的服务
- stop slave;
-
- #配置关联主库(master),
- #MASTER_HOST : 要连接的主服务器的 ip 地址
- #MASTER_USER : 要连接的主服务器的用户名
- #MASTER_PASSWORD : 设置要连接的主服务器的密码
- #以下两个填主库执行 show master status; 得到的信息
- #MASTER_LOG_FILE :要连接的主服务器的 bin 日志的日志名称
- #MASTER_LOG_POS :要连接的主服务器的 bin 日志的记录位置
-
- change master to master_host='主节点IP', master_port=3306,master_user='root',master_password='数据库密码',master_log_file='mysql-bin.000001',master_log_pos=1736;
-
-
- #启动
- start slave;
-
- #查看主从同步状态,没有报错启动成功
- show slave status \G;
图中两处要为Yes
- #旧主库关闭只读,开启读写,转为从库
-
- set global read_only=off;
- set global super_read_only=off;
测试:连接新主数据库,建表看是否同步到从库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。