一 下载

可以选择 RPM Bundle,里面包含了所有的rpm安装包,如果选择了这个就不需要再分开下载下面的各个rpm包

如果不想全部下载,也可以细化下载,下载须要的mysql组件,有4个:分别是 server、client、common、libs(可选)

选择好后点击download进入到登陆页面,这一步如果没有账号可以选择不用登陆直接下载,点击下面的No thanks, just start my download.开始下载,可以将下载地址复制在下载器中下载,如迅雷,具体的下载地址为:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar

下载完成后的tar包解压后里面是每个组件的rpm包

二 安装单机版MySql

  • 卸载mariadb

centos默认安装了mariadb,因此,在安装mysql之前,需要卸载系统中安装的mariadb。

查看系统中所有已安装的mariadb包。命令:

rpm -qa | grep mariadb

卸载mariadb

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

  • 安装MySql组件

使用命令rpm -ivh {-file-name}进行安装操作。(ivh中, i-install安装;v-verbose进度条;h-hash哈希校验)

按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server,在下载的安装包中会有很多组件,mysql的正常运行只需要安装common、libs、client、server四个组件就可以,不需要全部安装

将所需组件的rpm包上传到服务器

执行安装命令

rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm

在安装mysql-community-server-5.7.27-1.el7.x86_64.rpm如果出现下面错误:

原因:这是由于yum安装了旧版本的GPG keys造成的 解决办法:后面加上  --force --nodeps 如:

rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps

从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。

注意细节

1、执行 yum remove mysql-libs   命令后,会自动删除掉 /etc/ 下的 my.cnf 文件

2、对于安装mysql组件,只有安装了 mysql-community-server-5.7.22-1.el7.x86_64.rpm 组件,才会:

a)在 /etc/下生成 my.cnf 文件 和 my.cnf.d 文件夹

b)在/var/lib/下生产以下三个文件夹:mysql、mysql-files、mysql-keyring

c) 在/var/log/ 下生成 mysqld.log 文件

d) 在/var/run/ 下生成 mysqld 目录

  • 初始化mysql数据库

安装成功后执行 systemctl start mysqld 进行数据库初始化操作,若不进行初始化则不能生成root用户的初始密码

初始化启动使用命令:systemctl start mysqld (如果mysql无法启动可以尝试重启系统)

其他初始化命令:

启动:systemctl start mysqld

停止:systemctl stop mysqld

重启:systemctl restart mysqld

查看mysql状态:systemctl status mysqld

查看mysql进程:ps -ef|grep mysql

查看3306端口:netstat -anop|grep 3306

初始化启动完成后若要再管理mysql服务则需要用下命的命令

service mysql start

service mysql stop

service mysql restart

  • 修改mysql配置文件

vi /etc/my.cnf

将文件原来的内容全部删除,重新添加如下内容

[mysqld]

character_set_server = utf8

bind-address = 0.0.0.0

skip-name-resolve

重启mysql:systemctl restart mysqld

如果上面的命令失败可以试试service mysql restart

  • 初始化MySQL数据库

查看mysql初始密码,查看的密码要记录下来,在下一步修改mysql密码时要输入

cat /var/log/mysqld.log | grep "A temporary password"

修改MySQL密码

mysql_secure_installation

根据提示输入密码,新密码,选择等

在5.6后,mysql内置密码增强机制,低强度密码会报错,可以设置

修改密码需要提示信息依次为:

  • Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

    您想用提供的密码继续吗?(按y | y表示是,按任何其他键表示否):y

  • Remove anonymous users? (Press y|Y for Yes, any other key for No) :

    删除匿名用户?(按y | y表示是,按任何其他键表示否):y(一般会选择删除匿名用户,安全)

  • Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

    不允许远程根用户登录?(按y | y表示是,按任何其他键表示否):n(输入y表示禁止root用户远程登陆,这样安全,但需要创建其他用户使用)

  • Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

    删除测试数据库并访问它?(按y | y表示是,按任何其他键表示否):y(是否都可以)

  • Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

    现在重新加载特权表?(按y | y表示是,按任何其他键表示否):y

修改成功后本地登陆管理员账户

mysql -u root -p

使用root账户创建一个新的账户

CREATE USER 'admin'@'%' IDENTIFIED BY 'Abc_123456';

GRANT all privileges ON *.* TO 'admin'@'%';

FLUSH PRIVILEGES;

创建完成之后可以使用admin用户操作,可以使用客户端登陆测试。

注:本安装步骤中限制了root用户的远程登陆,所以在使用客户端远程登陆时使用root用户登陆失败,要使用admin用户可以远程登陆,若需要root用户远程登陆,请参考下面

  • 设置mysql开机自启

    Systemctl enable mysqld

  • 配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。

(1)进入MySQL

[root@hadoop102 mysql-libs]# mysql -uroot -p000000

(2)显示数据库

mysql>show databases;

(3)使用MySQL数据库

mysql>use mysql;

(4)展示MySQL数据库中的所有表

mysql>show tables;

(5)展示user表的结构

mysql>desc user;

(6)查询user表

mysql>select User, Host from user;

(7)修改user表,把Host表内容修改为%

mysql>update user set host='%' where host='localhost';

(8)删除root用户的其他host

mysql>

delete from user where Host='hadoop102';

delete from user where Host='127.0.0.1';

delete from user where Host='::1';

(9)刷新

mysql>flush privileges;

(10)退出

mysql>quit;

至此,数据库的初始化工作完成,以上操作可以作为单机版的mysql安装步骤。

三 主从复制配置

按照单机版的按照步骤在另一台服务器上安装mysql,在搭建主从复制之前两台单机版的mysql之间是互相独立的,dajian 主从复制的原理就是从读取主的blog日志,将数据写入到从服务器

配置演示

主节点:192.168.194.161

从节点:192.168.194.162

MySQL版本:5.7.27

Linux:centOS7.6

3.1 主节点配置

  • 编辑主节点配置文件

    vi /etc/my.cnf

    添加如下内容

log-bin=mysql-bin

server-id=1

innodb-file-per-table=ON

skip_name_resolve=ON

binlog-ignore-db=mysql

binlog_format=mixed

  • 重启mysql服务

    systemctl restart mysqld

  • 查看MySQL信息

    使用root用户登陆主节点

    mysql -u root -p

    查看二进制日志是否开启

    show global variables like '%log%';

查看主节点二进制日志列表(已经生成的日志列表)

show master logs;

查看主节点的server id

show global variables like '%server%';

  • 在主节点上创建有复制权限的用户

    slave想要同步master上的数据首先肯定需要权限,所以我们要在master上面开通权限

    grant replication slave, replication client on *.* to 'root'@'192.168.194.162' identified by '9o0p(O)P';

    账号是root密码是9o0p(O)P ,允许192.168.194.162(从节点ip)这台机器向master发送同步请求,当然也可以设成其他用户

    刷新一下授权信息,然后查看当前master的状态

    flush privileges;

    show master status;

3.2 从节点配置

  • 编辑从节点配置文件

    添加以下内容

    relay-log=relay-log

    relay-log-index=relay-log.index

    server-id=2 #全局唯一的,不能和其他节点重复

    innodb_file_per_table=ON

    skip_name_resolve=ON

  • 重启从节点

    systemctl restart mysqld

  • 查看从节点配置信息

    使用root用户登陆从节点

    mysql -u root -p

    查看中继日志是否开启

    show global variables like '%log%';

    查看看server 相关信息

    show global variables like '%server%';

  • 在从节点配置访问主节点的参数信息

添加 主节点主机,访问主节点的用户名及密码,主节点二进制文件信息。

注意:主节点的二进制文件一定要是二进制列表中的最后一个二进制文件。

查看主节点的二进制文件

这里的二进制文件只有一个,如果数据库已经运行了一段时间,会产生多个二进制文件,这里添加的要使用最后一个生成的二进制文件

在从节点上执行下面命令配置访问主节点的参数信息

change master to master_host='192.168.194.161',master_user='root',master_password='9o0p(O)P',master_log_file='mysql-bin.000001',master_log_pos=775;

其中

master_host='192.168.194.161':主节点的ip

master_user='root':登陆主节点的用户名,可以是root用户

master_password='9o0p(O)P':登陆密码

master_log_file='mysql-bin.000001':主节点的最后一个二进制文件名

master_log_pos=775:主节点的最后一个二进制文件名File_size值

  • 查看从节点的状态信息

    show slave status\G (G要大写,如果是小写则显示的不整齐)

    因为没有启动 从节点的复制线程,IO线程 和 SQL 线程都为NO.

  • 启动复制线程

    start slave;

    再次查看从节点状态信息

至此,mysql的主----从复制配置完成。

3.3测试

  • 创建数据库

    在主节点创建一个数据库

    create database mydb;

    在从节点查看

    show databases;

也可以使用客户端软件远程登陆测试数据的增删该操作,注意,远程登陆需要使用admin用户,root用户已经现在了远程登陆。

3.4主从复制架构中应注意的问题

从节点要设置某些限定使得它不能进行写操作,才能保证复制当中的数据一致。

  • 限制从服务器为只读

    在从服务器上设置:

    read_only = ON,但是此限制对拥有SUPER权限 的用户均无效。

    阻止所有用户:

    mysq>FLUSH TABLES WITH READ LOCK;

  • 如何保证主从复制时的事物安全?

1:在主节点设置参数

sync_binlog=1: Mysql开启bin-log日志使用bin-log时,默认情况下,并不是每次执行写入就与硬盘同步,这样在服务器崩溃时,就可能导致bin-log最后的语句丢失。可以通过这个参数来调节,sync_binlog=N,使执行N次写入后,与硬盘同步。1是最安全的,但是也是最慢的。

如果用到innode 存储引擎:innodb_flush_logs_at_trx_commit=ON(刷写日志:在事务提交时,要将内存中跟事务相关的数据立即刷写到事务日志中去。)

innodb_support_xa=ON (分布式事务:基于它来做两段式提交功能)

sync_master_info=1:每次给从节点dump一些事件信息之后,主节点的master info 信息会立即同步到磁盘上。让从服务器中的 master_info 及时更新。

2:在每个slave节点

skip_slave_start =ON (跳过自动启动,使用手动启动。)

relay_log也会在内从中先缓存,然后在同步到relay_log中去,可以使用下面参数使其立即同步。

sync_relay_log =1 ,默认为10000,即每10000次sync_relay_log事件会刷新到磁盘。为0则表示不刷新,交由OS的cache控制。

sync_relay_log_info=1每间隔多少事务刷新relay-log.info,如果是table(innodb)设置无效,每个事务都会更新

注: 在从节点中 master.info是记录在主节点复制位置的文件。

relylog_info: 本地将来至于主节点的哪一个二进制文件中position并且保存文本地哪一个中继日志中的哪一个postion. 从节点启动时也需要根据relay-log.info定位本地relay-log.

CentOS 7安装mysql5.7-单节点&主从的更多相关文章

  1. 安装简易OpenShift单节点并配置DNS泛域名

    1 楔子 公司有个项目部署在 OpenShift 容器云平台上,出现问题较多,于是萌生在公司环境搭建现场仿真环境,由于资源没有生产环境多,就使用单节点简单模拟下 本文主要内容包括以下: 使用 Dnsm ...

  2. Centos7安装 Hadoop(单节点)

    1.Hadoop简介 Hadoop是一个由Apache基金会所开发的开源分布式系统基础框架,使用Java开发,是处理大规模数据的软件平台. Hadoop可以从单一节点扩展到上千节点.用户可以在不了解分 ...

  3. 在centos上安装mysql5.7的三种方法

    带OS信息的是已编译的二进制文件,不带OS信息的是源码包 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz 二进制包 mysql-5.5.51.tar.gz 源码包 ...

  4. centos 7安装mysql5.5

    首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安 ...

  5. centOS上安装MySQL5.7

    在centos上安装mysql,前提得有sudo的权限.没有的话先去跟管理员申请一个. STEP 1 - 安装MySQL 首先打开浏览器访问下 https://dev.mysql.com/downlo ...

  6. centos6.6手动安装mysql5.5并配置主从同步

    0.实验环境 主机IP(Master) 192.168.61.150 centos6.6 从机IP(Slave)   192.168.61.157 centos6.6 1.查看centos系统版本 [ ...

  7. CentOS RPM安装MySQL-5.6

    1.检查是否有安装 安装之前应该先查询系统是否自在了mysql的软件包 rpm -qa|grep -i mysql 如果有的话需要先删除 rpm -e 软件名 --nodeps 2.下载安装包 cd/ ...

  8. centos 下安装mysql-5.6.11

    这次是在centos6.4下安装mysql,在安装之前,你要先确定你的linux已经安装了这些包: wget, gcc-c++, ncurses-devel ,cmake, make ,perl 如果 ...

  9. Centos 7 安装 mysql5.7

    1.需要下载mysql 下载地址:http://dev.mysql.com/downloads/mysql/ 2.将下载的rpm包上传到centos 7上(我是放在根下面的opt目录) 3. 安装my ...

随机推荐

  1. python不确定性计算之粗糙集属性约简

    粗糙集属性约简 本实验同时采用区别矩阵和依赖度约简. 在依赖度约简中,设置依赖度计算函数和相对约简函数,对读取的数据进行处理,最后根据依赖度约简. 在读取数据后判断有无矛盾,若有则进行决策表分解,然后 ...

  2. 这次彻底读透 Redis

    1. Redis 管道 我们通常使用 Redis 的方式是,发送命令,命令排队,Redis 执行,然后返回结果,这个过程称为Round trip time(简称RTT, 往返时间).但是如果有多条命令 ...

  3. 浅谈API和SDK的区别

    首先了解一下他们的定义 API:application program interface 应用程序接口 通常表示一些事先定义好的函数,为了向外部提供一组功能的实现,实现和其他软件的交互 SDK:so ...

  4. Modbus协议及python库实现

    基础知识 硬件层协议:解决0和1的可靠传输,常有RS232.RS485.CAN.IIC.SPI - 软件层协议:解决传输目的,常有Modbus.TCP/IP.CANopen - 协议优点: Modbu ...

  5. 微信小程序canvas 证件照制作

    小程序制作证件照过程 利用canvas制作生活中常用的证件照,压缩图片,修改图片dpi.希望给大家带来方便. 证件照小程序制作要点 上传合适的图片,方便制作证件照 调用AI接口,将图像进行人像分割.这 ...

  6. JavaScript常用工具函数

    检测数据是不是除了symbol外的原始数据 function isStatic(value) { return ( typeof value === 'string' || typeof value ...

  7. 2022春每日一题:Day 7

    题目:Fire 先预处理出每个F蔓延的时间,再bfs走迷宫. 代码: #include <cstdio> #include <cstdlib> #include <cst ...

  8. phpmyadmin 数据库导出数据到excel(图文版)

    查询到想要的数据后,点击上方或下方的"导出"按钮 格式选择"CSV for MS Excel" 如果快速导出的数据乱码,可以选择"导出方式" ...

  9. uni 结合vuex 编写动态全局配置变量 this.baseurl

    在日常开发过程,相信大家有遇到过各种需求,而我,在这段事件便遇到了一个,需要通过用户界面配置动态接口,同时,因为是app小程序开发,所以接口中涉及到了http以及websocket两个类型的接口. 同 ...

  10. 【Java SE】Day07 API、Scanner类、Random类、ArrayList类

    一.API 1.概述: API(Application Programming Interface),应用程序编程接口 Java API:程序员的字典,是类的说明文档 2.使用步骤 帮助文档:JDK_ ...