Hadoop学习笔记(HDP)-Part.07 安装MySQL

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

七、安装MySQL

mysql主从复制的原理:
1)master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events);
2)slave将master的binary log events拷贝到它的中继日志(relay log);
3)slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)。
主从配置注意点:

  • 主、从DB server数据库的版本一致,主DB server和从DBserver数据库数据一致 主DB
  • server开启二进制日志,主DB server和从DB server的server_id都必须唯一

1.删除MariaDB

查询并删除原有的MariaDB

ansible nn -m shell -a 'rpm -qa | grep mariadb'
ansible nn -m shell -a 'rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64'

2.安装

创建/root/ansible/mysql.yml文件

---
- hosts: nn
  tasks:
    - name: install mysql
      unarchive:
        src: "/opt/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz"
        dest: "/usr/local/"
    - name: create group
      group:
        name: mysql
        state: present
    - name: create user
      user:
        name: mysql
        group: mysql
        state: present
    - name: create directory
      file:
        path: "/data01/mysql/mariadb"
        state: directory
        owner: mysql
        group: mysql
        recurse: yes
    - name: create file of log
      file:
        path: "/data01/mysql/mariadb/mariadb.log"
        state: touch
        owner: mysql
        group: mysql

执行安装

ansible-playbook mysql.yml

3.配置

创建配置文件/etc/my.cnf,hdp01的server-id为100,hdp02的server-id为200

[mysqld]
user = mysql   # mysqld程序在启动后将在给定UNIX/Linux账户下执行。mysqld必须从root账户启动才能在启动后切换到另一个账户下执行
basedir = /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/      # MySQL安装的绝对路径
datadir = /data01/mysql/data    # MySQL数据存放的绝对路径

socket = /data01/mysql/mysql.sock       # socket文件路径
port = 3306     # 服务端口号
server-id=100   # MySQL服务的唯一编号,每个MySQL服务的id需唯一

default_authentication_plugin = mysql_native_password

character-set-server = utf8mb4          # 数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
collation-server = utf8mb4_general_ci   # 数据库字符集对应一些排序等规则,注意要和character-set-server对应
init_connect='SET NAMES utf8mb4'        # 设置client连接mysql时的字符集,防止乱码
lower_case_table_names = 1              # 是否对 sql 语句大小写敏感,1 表示不敏感

key_buffer_size = 16M   # 用于指定索引缓冲区的大小
max_allowed_packet = 1024M # 设置一次消息传输的最大值,如果有BLOB对象建议修改成1G
sql_mode = TRADITIONAL  # 表示SQL模式的参数,通过这个参数可以设置检验SQL语句的严格程度
pid-file = /data01/mysql/data/mysql.pid # pid-file文件路径
log-bin=/data01/mysql/mysql-bin # 二进制文件存放路径,生产环境下建议将bin-log和data分磁盘存储,避免日志打满影响数据
max_connections = 1000                  # 设置最大连接数

[mysqld_safe]
log-error = /data01/mysql/mariadb/mariadb.log
pid-file = /data01/mysql/mariadb/mariadb.pid

[client]
port = 3306
socket = /data01/mysql/mysql.sock

4.初始化

【hdp01】【hdp02】初始化基础信息,得到数据库的初始密码,在root账号下执行

cd /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/bin/
./mysqld --initialize

5.配置系统服务

【hdp01】【hdp02】
配置mysqld系统服务文件/usr/lib/systemd/system/mysql.server.service

[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/data01/mysql/data/mysql.pid
ExecStart=/usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false

[Install]
WantedBy=multi-user.target

重新加载

systemctl daemon-reload

通过系统服务启动mysql.server并查看服务状态

systemctl start mysql.server
systemctl status mysql.server

6.重置root密码

【hdp01】【hdp02】做软链接,方便登录

ln -s /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysql /usr/local/sbin/mysql

使用初始化获得的root密码登录一直报错,所以需要按照如下方法免密进入。
在这里插入图片描述
先停掉原有的系统服务mysql.server,手工携带参数–skip-grant-tables启动MySQL程序,用以免密进入MySQL修改密码(系统服务已经写好了启动参数,因此手工携带参数单次启动)
systemctl stop mysql.server
cd /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/support-files/
./mysql.server start --skip-grant-tables
先清空root密码及修改为远程登录
mysql -uroot -p
use mysql;
update user set authentication_string=‘’,host=‘%’ where user=‘root’;
flush privileges;
手工停掉免密登录的MySQL进程,以服务形式启动MySQL
./mysql.server stop
systemctl start mysql.server
再次登陆的时候是空密码登陆,然后修改密码
mysql -uroot -p
alter user ‘root’@‘%’ identified by ‘lnyd@LNsy115’;
flush privileges;

7.主从配置

【hdp01】在mysql中,查看主节点信息

show master status;

在这里插入图片描述
创建用于slave同步日志的账号master

create user 'master'@'192.168.111.202' identified with mysql_native_password by 'Aa@123456';
grant replication slave on *.* TO 'master'@'192.168.111.202';
flush privileges;

【hdp02】在mysql中,配置为slave模式

stop slave;
reset slave;
change master to master_host="192.168.111.201", master_user="master",master_password="Aa@123456", master_log_file="mysql-bin.000014",master_log_pos=605;

CHANGE MASTER TO MASTER_HOST:主服务器的IP地址
MASTER_USER:主服务器上用于同步账号
MASTER_PASSWORD:同步账号的密码
MASTER_LOG_FILE:bin日志的文件名,取自主节点SHOW MASTER STATUS结果
MASTER_LOG_POS:bin Eposition值,取自主节点SHOW MASTER STATUS结果
启用从节点

start slave;

在这里插入图片描述
查看从节点状态

show slave status\G;

观察Slave_IO_Running和Slave_SQL_Running如果为YES,说明运行正常
在这里插入图片描述
如果出现NO,可能是slave机器重起后,事务回滚造成的,在从节点上执行如下:

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

8.测试

在主节点上创建测试账号及测试库,查看从节点是否同步
【hdp01】创建测试账号及测试数据库、测试表

create user 'test_user_0212'@'localhost';
flush privileges;
create database test_db_0212;
create table test_db_0212.test_table_0212 (id integer);

【hdp02】查看是否存在测试账号、测试数据库及测试表

select user,host from mysql.user where user='test_user_0212';

在这里插入图片描述

show databases;

在这里插入图片描述

describe test_db_0212.test_table_0212;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/220600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生成式 AI 应用落地小结:高估的模型能力,低估的工程实施

虽然 ChatGPT 已经诞生了一周年,但是大量的人依旧对于生成式 AI 没有足够的认识。在研发领域,Thoughtworks 一直在与不同的大型企业合作,保持开放性的探索。 在我负责的 Thoughtworks 开源社区,我们与外部的几家大型企业一起探索和…

YOLOv8创新魔改教程(三)如何添加注意力机制注意力机制的用法与思考

注意力机制的用法与思考 好多同学问我加了CA注意力机制,CBAM注意力机制,都没有涨点,然后就在不停地换不同的注意力机制,其实并不是这样的。今天和大家讨论一下注意力机制的用法与思考。 (一)添加位置 大…

Vmware17虚拟机安装windows10系统

不要去什么系统之家之类的下载镜像,会不好安装,镜像被魔改过了,适合真实物理机上的系统在PE里安装系统,建议下载原版系统ISO文件 安装vmware17pro 下载地址https://dwangshuo.jb51.net/202211/tools/VMwareplayer17_855676.rar 解…

vue3中手写一个日历,年部分,月部分,周部分,日部分

效果图 高度自定义,支持每天的统计展示,弹窗展示,详情操作 月部分: 默认展示当前月,支持前进和后退选择下一月 支持自定义每月的展示数据, 周部分: 分为上下午,可以列出要做的事项…

BitWarden数据迁移以及邮箱SMTP配置

bitwarden 个人密码库,这是我玩nas之后最想推荐的一个东西,今天就来分享一下 之前使用bitwarden都是网上现成的文章照抄(能搜到的都是抄来抄去的简直离谱),导致邮箱无法使用、数据库也只是本地的sqlLite很不方便。 前…

人工智能对我们的生活影响有多大?

一、标题解析 本文标题为“人工智能对我们的生活影响有多大?”,这是一个典型的知乎风格SEO文案标题,既能够吸引读者,又能够体现文章的核心内容。 二、内容创作 1. 引言:在开头,我们可以简要介绍人工智能…

MySQL的时间与日期函数

1、日期格式 DATE_FORMAT("20231128", %Y-%m-%d) -- 2023-11-28 DATE_FORMAT("2023-11-28", %Y-%m-%d) -- 2023-11-28 DATE_FORMAT(2023-11-28 08:47:23, %H:%i:%s) -- 08:47:23 (24小时制) DATE_FORMAT(2023-11-28 08:47:23, %h:%i:%s) -- 08:47:23(12小…

九九乘法表-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第13讲。 九九乘法表&#…

【机器学习】聚类(三):原型聚类:高斯混合聚类

文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 全局调试变量2. 调试函数3. 高斯密度函数(phi)4. E步(getExpectation&#xff09…

class文件结构

文章目录 1. 常量池集合2. 访问标志3. 字段表集合4. 方法表集合5. 属性表集合 成员变量(非静态)的赋值过程:1. 默认初始化 2. 显示初始化/代码块中初始化 3. 构造器中初始化 4. 有了对象后对象。属性或者对象。方法的方式对成员变量进行赋值 …

JVM之四种引用类型(五)

JVM 系列吊打面试官:说一下 Java 的四种引用类型 四种引种类型 1.强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是…

RPG项目01_UI面板Game

基于“RPG项目01_技能释放”,将UI包导入Unity场景中, 将图片放置 拖拽 取消勾选(隐藏攻击切片) 对技能添加蒙版 调节父子物体大小一致 将子类蒙版复制 执行5次 运行即可看到技能使用完的冷却条 在Scripts下创建UI文件夹 写代码&am…

设计模式——七大设计原则

设计模式——七大设计原则 1、单一职责原则(SRP)2、开放封闭原则(OCP)3、依赖倒转原则(DIP)4、里氏替换原则 (LSP)5、接口隔离原则 (ISP)6、合成/聚合复用原则 (CARP)7、迪米特法则 (LoD) 了解 设计模式 的…

使用C语言创建高性能网络爬虫IP池

目录 一、引言 二、IP池的设计 1、需求分析 2、架构设计 3、关键技术 三、IP池的实现 1、存储实现 2、调度实现 3、通信实现 4、异常处理实现 四、代码示例 五、性能优化 六、测试与分析 七、结论 一、引言 随着互联网的快速发展,网络爬虫成为了获取…

2-1、地址加法器CS:IP

语雀原文链接 文章目录 1、CPU组成2、通用寄存器16位寄存器的存储16位寄存器兼容8位word 和 byte进位问题 3、地址加法器不同的段地址和偏移地址表示同一个物理地址偏移地址的范围一个段的起始地址一定是16的倍数 4、CS:IPCS IP工作过程jmp修改CS:IP 5、DS和[address]DS和[add…

高级搜索——伸展树Splay详解

文章目录 伸展树Splay伸展树Splay的定义局部性原理Splay的伸展操作逐层伸展双层伸展zig-zig/zag-zagzig-zag/zag-zigzig/zag双层伸展的效果与效率 伸展树的实现动态版本实现递增分配器节点定义Splay类及其接口定义伸展操作左单旋右单旋右左/左右双旋伸展 查找操作删除操作插入操…

Spring 保姆级带你认识,让你如何轻松应对面试官

Spring 保姆级带你认识,让你如何轻松应对面试官 1.Spring是什么?作用是什么? Spring是一个轻量级的JavaEE框架,它主要解决企业应用中的复杂性问题。Spring框架有三个核心部分:IoC容器、AOP和数据访问/集成层。Spring…

java--抽象类

1.什么是抽象类 ①在java中有一个关键字叫:abstract,它就是抽象的意思,可以用它修饰类、成员方法。 ②abstract修饰类,这个类就是抽象类;修饰方法,这个方法就是抽象方法。 2.抽象类的注意事项、特点 ①抽…

Vue3-ElementPlus按需导入

1.安装 pnpm add element-plus 2.配置按需导入: 官方文档:快速开始 | Element Plus 按照官网按需导入中的自动导入步骤来进行 pnpm add -D unplugin-vue-components unplugin-auto-import 观察Vite代码与原vite文件的差别,将原vite文件中没…

[数据结构]-map和set

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、键值对…