一 下载

可以选择 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. Centos7使用sendEmail-v1.56发送邮件

    Centos7使用sendEmail-v1.56发送邮件 注意:Centos7默认使用perl5.16,而sendEmail-v.1.56要求使用perl5.10.否则会报以下错误.所以需要下载并安装 ...

  2. python-D1-typora软件和计算机入门1

    一 typora软件 typora是一款目前非常火爆文本编辑器 1.1 安装 尽量安装在非系统盘符及设置为短路径,方便后面查找 1.2 文件路径 在计算机上就是一个资源的定位坐标,表现为具体在哪里,例 ...

  3. JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)

    阿西吧.自从学会使用框架.再看以前写的.我真的是要死了.项目用的还不是maven.整理项目能给我搞死.更要命的是这个项目还是用eclipse写的.数据库还是SQL server.阿西吧 这个系统代码不 ...

  4. 齐博x1头部底部菜单高亮设置

    下面这段是默认模板头部的导航菜单: {php}$menu_choose=config('system_dirname')?config('system_dirname'):'index';{/php} ...

  5. Educational Codeforces Round 130 (Rated for Div. 2) C. awoo's Favorite Problem

    https://codeforc.es/contest/1697/problem/C 因为规则中,两种字符串变换都与'b'有关,所以我们根据b的位置来进行考虑: 先去掉所有的'b',如果两字符串不相等 ...

  6. Go实现栈与队列基本操作

    @ 目录 一 前言 二 实现栈与队列基本操作 2.1 栈基本操作 2.2 队列基本操作 三 用栈实现队列 3.1 理论 3.2 算法题 3.3 思路 3.4 代码部分 四 用队列实现栈 4.1 理论 ...

  7. Go语言核心36讲44

    今天,我们来讲另一个与I/O操作强相关的代码包bufio.bufio是"buffered I/O"的缩写.顾名思义,这个代码包中的程序实体实现的I/O操作都内置了缓冲区. bufi ...

  8. .NET跨平台框架选择之一 - Avalonia UI

    本文阅读目录 1. Avalonia UI简介 Avalonia UI文档教程:https://docs.avaloniaui.net/docs/getting-started 随着跨平台越来越流行, ...

  9. vulnhub靶场之DIGITALWORLD.LOCAL: SNAKEOIL

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DIGITALWORLD.LOCAL: SNAKEOIL,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://down ...

  10. (工具) 性能测试基准软件 lmBench (待补充)

    1. lmBench 介绍 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开 ...