linux系统CentOS7安装mysql5.7.27加主从备份(rpm安装版)
1.下载mysql5.7的rpm安装包
rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!!
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

2.上传mysql安装包到系统
这里用的是xshell来连接和上传到服务器;首先安装lrzsz,这样就可以在xshell中拖拽上传了(非必须,只是方便拖拽上传)
[root@localhost src]# yum install lrzsz
进入/usr/local/src 并把mysql5.7的安装包拖拽上传到该目录下(当然上传到其它的目录也可以)
[root@localhost src]# cd /usr/local
3.安装依赖
3.1 查看linux上是否已经安装了mysql,有则卸载。
一般centos7默认安装了mariadb,这里把它卸载。
查看:[root@localhost bin]# rpm -qa|grep mariadb
卸载:[root@localhost bin]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
查看: rpm -qa | grep mysql *#查看是否安装了MySQL*
卸载:rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
查找:whereis mysql
查找:find / -name mysql
使用rm -rf 删除掉所有查找到的mysql文件和目录
3.2 安装mysql5.7所需要的依赖
[root@localhost src]# yum install libaio
[root@localhost src]# yum install perl
[root@localhost src]# yum install net-tools
4.安装mysql5.7
4.1 解压mysql5.7安装包
[root@localhost src]# tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
解压完后会有很过rpm文件,这些就是我们需要安装的。
4.2 安装mysql5.7
[root@localhost src]# rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm
MySQL的默认安装位置
1 /var/lib/mysql/ #数据库目录
2 /usr/share/mysql #配置文件目录
3 /usr/bin #相关命令目录
4 /etc/init.d/mysql #启动脚本
可能报的错:
安装mysql的client过程中提示缺少依赖
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
解决方案
yum install libncurses.so.5 libtinfo.so.5(缺啥引啥)
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm --nodeps --force (加入两个参数,安装时不再分析包之间的依赖关系而直接安装)
再次安装测试
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
4.3 查看mysql5.7的状态,没有启动则把mysql启动
出现下面这个death就是没有启动,新装的第一次是没有启动的。
> 查看mysql启动状态
>
> [root@localhost src]# service mysqld status
> 启动mysql active(running)代表启动成功
>
> [root@localhost src]# service mysqld start
4.4 修改密码
查看临时密码:得知临时密码就是如图
[root@localhost src]# grep password /var/log/mysqld.log
用临时密码登录mysql
[root@localhost src]# mysql -uroot –p
修改成新的密码
mysql> set password = password("自己设置一个密码");
4.5 开启远程连接,允许远程连接数据库
*授权远程连接方法一*
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
'root' 为数据库用户
*授权远程连接方法二*
mysql> show databases;
mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user;
*修改root用户host值,使root用户可以远程登录*
mysql> update user set host = "%" where user='root';
mysql> select host, user, authentication_string, plugin from user;
*刷新数据*
mysql> flush privileges;
使用navicat远程连接数据库
可能报错:远程连不上可能是防火墙的问题,开发环境可以开放端口,不是开发环境可以关闭防火墙
4.6 配置mysql的配置文件my.cnf(用默认的也行,个人觉得配置一下好一些)
打开配置文件my.cnf
[root@localhost src]# vi /etc/my.cnf
在[mysqld]下面配置几行
lower_case_table_names=1 #配置表名不区分大小写 1:不区分大小写 0:区分大小写 这行必须配置 默认表名是区分大小写的,不利于开发
character-set-server=utf8 #设置为默认编码为utf8
init_connect='SET NAMES utf8'
max_connections=1024 #设置最大连接数
重启mysql 重启配置才能生效
[root@localhost src]# service mysqld restart
my.cnf的配置信息详解
https://www.cnblogs.com/fanggege/p/10856153.html
4.7 防火墙开启端口
到这其实mysql已经安装和配置好,但是centos7的开了防火墙,外面还是访问不到mysql的,所以还要开端口3306(或者把防火墙关掉也行,生产环境勿用)
关闭防火墙
systemctl stop firewalld
至此,centos7下安装mysql5.7完毕.
**注意:**centos7的防火墙变成了firewalld,centos7以前的版本是iptables
5、配置主从备份
为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主服务器的mysql挂掉之后,数据也不会丢失,同时也提高了数据库的效率。
1.环境
master 192.168.174.129
slave 192.168.174.130
master和slave的防火墙都为关闭状态
2.在master和slave上安装mysql和mysql-server
注:mysql master数据库版本和slave数据库版本要相同,或者slave版本比master高
mysql安装可以yum安装也可以rpm安装,本文为rpm安装
在主服务器和从服务器上打开mysql服务,并设置开机自启
service mysqld restart
chkconfig mysqld on
3.mysql mater配置(主)
打开mysql配置文件/etc/my.cnf,在mysqld下添加
log-bin=mysql-bin ---------启动二进制日志系统
binlog-do-db=test ---------要同步的数据库
server-id=1 ---------服务id,主服务器server-id比从服务器server-id小
binlog-ignore-db=mysql ------避免同步mysql用户配置
重启mysql
service mysqld restart
进入数据库mysql
mysql -u root -p
初始状态mysql默认没有密码,如果要设置密码可以使用mysqladmin -u root -p “password”,设置密码,这样也会更安全一些
创建一个同步账号,并赋予权限
查看master的状态信息,记录下file和position的值,在后边的slave配置中会用到
4.mysql slave配置(从)
打开mysql配置文件/etc/my.cnf,在mysqld下添加
server-id=2 -------- 服务id,从服务器server-id比主服务器server-id大
replication-ignore-db=mysql -- 屏蔽对mysql库的同步
replication-do-db=test ---------要同步的数据库名,与主服务器配置保持一致
master-connect-retry=60 --------断点重连时间
master-host=192.168.174.129
master-user=test
master-password=test
master-port=3306
进入mysql
mysql -u root -p
停止slave服务:stop slave;
配置slave同步,完成后开启slave服务
change master to master_host='192.168.174.129',master_user='test',master_password='test',master_log_file='mysql-bin.000026',master_log_pos=346;
这里的master_log_file和master_log_pos要和前面记录的file和position一致
查看slave状态
show slave status\G;
当两个running都为yes时即配置成功,可以在主服务上对test数据库操作,看是否这些操作会同步到从服务器上