使用脚本安装mysql5.7.36及主从复制

先检查环境:

看是否有下边依赖,没有的话需要将下边依赖上传linux服务器
在这里插入图片描述

#在此文件夹中全部都是rpm包,我们先执行
rpm -ivh *.rpm

#如果出错执行一下
rpm -Uvh *.rpm

#如果仍然不行的话,执行
rpm --nodeps -ivh *.rpm

1、删除之前安装的Mysql

1、查看MySQL服务运行状态:

service mysql status

在这里插入图片描述

2、查看mysql服务

ps -ef|grep mysql

在这里插入图片描述
3、关闭mysql服务

service mysql stop

在这里插入图片描述
4、查看mysql安装包存储位置
在这里插入图片描述
5、删除以上文件夹

rm -rf /etc/selinux/targeted/active/modules/100/mysql

6、再次查看是否删除
在这里插入图片描述

2、安装

1、给脚本赋予权限

chmod 777 -R MySQL_Install.sh

在这里插入图片描述2、执行脚本,等待安装

./MySQL_Install.sh

安装成功,记住默认密码

在这里插入图片描述

3、修改数据库默认密码

此时我们连接mysql时发现报错,这是因为mysql没有启动

在这里插入图片描述
通过service mysqld status查看mysql状态

service mysqld status

在这里插入图片描述

启动mysql

service mysqld start

在这里插入图片描述

再次连接mysql,此时登录成功

,

4、修改mysql默认密码

SET PASSWORD = PASSWORD('新密码');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES;

在这里插入图片描述

5、设置所有主机都可以通过root账号访问该服务器的mysql

grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;

flush privileges;

在这里插入图片描述

6、开发3306端口在外部可以访问

firewall-cmd --permanent --zone=public --add-port=3306/tcp

7、如果使用本地navicate连接mysql失败(出现下图所示错误),则关闭服务器防火墙,在连接mysql,然后再开启防火墙即可。
在这里插入图片描述

#查看防火墙状态
systemctl status firewalld.service

#关闭防火墙
systemctl stop firewalld.service

#开启防火墙
systemctl start firewalld.service

4、设置开机自启

1、将安装目录下的 support-files 目录下mysql.server复制到/etc/rc.d/init.d/mysql

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

2、复制后赋予权限

chmod +x /etc/init.d/mysql

3、添加到服务列表

chkconfig --add mysql

4、查看服务列表

chkconfig --list

在这里插入图片描述
注意看到mysql后面的345都是开或者是on表示成功, 如果是 关或者 off 则需要开启,执行以下命令

chkconfig --level 345 mysqld on

5、外部连接测试

在这里插入图片描述

6、mysql主从安装

在进行mysql主从安装开始之前,需要在两台服务器已经在正常安装了单击mysql服务
主服务器:192.168.11.131
从服务器:192.178.11.132

6.1、首先配置主服务器(192.168.11.131)

1、打开主服务器的配置文件/etc/my.cnf

vi /etc/my.cnf

2、在配置文件中新增以下内容:

log_bin_trust_function_creators=1

# 开启二进制日志
log-bin=mysql-bin  

# 设置server-id(必须唯一,不能和从数据库相同)
server-id=131     

# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = iam

# 不同步哪些数据库  
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

配置完成的主数据库如下
在这里插入图片描述

4、配置完成之后,还要重启一下数据库:

service mysqld restart

在这里插入图片描述
5、获得主(master)数据库二进制日志文件名及位置,首先登录数据库:

在这里插入图片描述
6、然后输入以下命令获取这些信息:

show master status;

正常情况下是输出以下信息,其中File和Position都是我们在设置从(slave)数据库的时候用到的:
在这里插入图片描述

6.2、配置从数据库

  • 配置唯一的server-id;
  • 使用主(master)数据库设置的用户账号读取主(master)数据库的bin二进制日志;
  • 启用slave服务;

1、首先配置server-id,编辑/etc/my.cnf文件。在[mysqld]下加上下面一行代码,这个server-id不要跟之前的主(master)数据库服务器获取其他数据库一样,要唯一的:

vi /etc/my.cnf

在这里插入图片描述
配置内容如下

log_bin_trust_function_creators=1

# 开启二进制日志
log-bin=mysql-slave1-bin

# 设置server-id
server-id=132

#要进行同步的数据库
binlog-do-db = iam

#不进行同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

说明:

  • log_bin_trust_function_creators=1 是 MySQL 数据库的一个配置选项,用于解决在二进制日志复制过程中可能出现的函数创建和修改的权限问题。
  • 在默认情况下,MySQL 的二进制日志(binary log)会记录对数据库对象(如表、函数、存储过程)的更改操作,以便能够在主从复制过程中同步这些更改。然而,在涉及函数创建和修改的情况下,MySQL 需要确保具有足够的权限来执行这些更改。
  • log_bin_trust_function_creators 的值设置为 0 时,MySQL 会检查对函数创建和修改的权限,并且如果没有足够的权限,将拒绝这些操作并记录错误。但在某些情况下,用户可能希望不进行权限检查,可以将 log_bin_trust_function_creators 设置为 1。
  • 需要注意的是,将 log_bin_trust_function_creators 设置为 1 可能会导致安全风险,因为任何用户都可以在复制过程中创建或修改函数,而无需进行权限检查。因此,在启用该选项之前,请确保已经理解潜在的风险,并仅在可靠环境中使用。
  • 若要启用 log_bin_trust_function_creators,可以编辑 MySQL 配置文件(例如 my.cnf 或 my.ini),并在 [mysqld] 部分中添加以下行:

3、同样要重启一下数据库:

service mysqld restart

在这里插入图片描述
4、然后登录到从数据库,进行以下配置。首先是配置主(master)数据库的IP地址,用户命,登录密码,刚才在主(master)数据库中查到的bin二进制文件的名称和所在的位置。

master_host:主数据库ip
master_user:主数据库用户
master_password:主数据库密码
master_log_file:6.1、步骤中show master status;输出的File值(如下截图所示)
master_log_pos:6.1、步骤中show master status;输出的Position值(如下截图所示)

在这里插入图片描述

change master to master_host='192.168.11.131',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;

5、配置完成之后就启动slave,命令如下:

在这里插入图片描述
6、然后可以查看配置结果,使用以下命令查看:

show slave status\G;

可以通过这些输出信息查看配置信息是否正确,其中最重要的是以下这两条信息,必须两个都是Yse才可以使用,这两个就是从(slave)数据库的两个读取和执行SQL语句的线程。

在这里插入图片描述

配置完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值