使用脚本安装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语句的线程。
配置完成