MySQL


  • 安装
  • AB复制

安装

1、编译安装
2、yum安装
【https://www.mysql.com/】
yum安装的方式
1、在官网下载mysql rpm包
# wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm # rpm -ivh mysql80-community-release-el7-6.noarch.rpm
警告:mysql80-community-release-el7-6.noarch.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql80-community-release-el7-6 ################################# [100%] # ls /etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community.repo 2、修改yum源仓库,修改默认安装版本为5.7
# vim /etc/yum.repos.d/mysql-community.repo
第5行 enabled=0 改为 =1
第13行 enabled=1 改为 =0 3、安装
# yum install mysql-community-server -y 可能出现的问题:
1)、获取 GPG 密钥失败:[Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"
解决方法: 把 gpgchecck=0 不检查秘钥 2)、由于系统不干净,可能安装过mariadb
# rpm -qa | grep -i mariadb | xargs -I {} rpm -e --nodeps {}

MySQL - 基本使用

有个巨坑:
之前安装过mariadb,导致mysql数据目录 /var/lib/mysql 有mariad数据库的残留 解决方法: 【数据库初始化】
# rm -rf /var/lib/mysql/*
# systemctl restart mysqld 1、mysql的使用
【修改初始密码】
# grep password /var/log/mysqld.log
2022-05-24T20:48:56.966105Z 1 [Note] A temporary password is generated for root@localhost: +&!69HeX6ooI
//密码是一串不规则的字符 # mysqladmin -uroot -p'初始密码' password '新密码' //建议密码: Qf..2022 2、mysql命令使用
选项
-u //指定用户名
-p //指定密码,中间不要有空格,最好要用'' 单引号引起来
-e //不需要登入数据库,直接在终端执行SQL语句
-D //导入数据库文件,导入指定的库
-h //指定主机
案例:
# mysql -uroot -p'Qf..2022' //登入当前机器的数据库
# mysql -uroot -p'Qf..2022' -h 10.3.148.200 //登入远程机器10.3.148.200的数据库

MySQL - 破解密码

1、设置免密登入
# vim /etc/my.cnf
在[mysqld] 下面添加
skip-grant-tables # systemctl restart mysqld 2、更新密码
# mysql
mysql> update mysql.user set authentication_string=password('Qf..2023') where User='root';
【authentication_string 密码字段 ; Qf..2023 新密码】 3、注释免密登入
# vim /etc/my.cnf
注释 #skip-grant-tables
# systemctl restart mysqld 4、登入测速
# mysql -uroot -p'Qf..2023'

MySQL - AB复制

环境准备:
最少需要两台机器
master: 10.3.148.200
slave: 10.3.148.212 1、机器要互相通信
2、selinux 防火墙firewalld要关闭
# getenforce
# systemctl status firewalld
AB复制的模式:
一主一从 、一主多从、双主、多主多从 复制的工作原理:
要想实现ab复制,那么前提是master上必须开启二进制日志
1)首先master将数据更新记录到二进制日志文件中
2)从slave start开始,slave通过I/O线程向master请求二进制日志文件,slave要知道向谁请求从哪个位置点请求
3)master接收到slave的I/O请求之后,就会从相应的位置点开始,给slave传日志
4)slave接收到日志后,会写入本地的中继日志中
5)slave通过sql线程读取中继日志中的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新 复制工作原理图:

配置过程
要知道向谁请求从哪个位置点请求1、master:开启二进制日志
# vim /etc/my.cnf
在 [mysqld] 添加
log-bin=binlog //开启日志,日志名称为binlog
server-id=1 //设置服务ID,两台机器不能相同 # systemctl restart mysqld 2、master:授权slave机器可以过来读取日志
# mysql -uroot -p'Qf..2022'
mysql> grant replication slave on *.* to repl@10.3.148.212 identified by 'Qf..2022';
//授权slave机器10.3.148.212能使用repl用户和密码Qf..2022 过来读取密码 mysql> flush privileges; //可选操作,刷新权限 3、要在master: 查看日志名称以及pos位置点
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 | 600 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec) 【注意,此时不要再去操作master机器,防止日志更新,pos节点发生改变】 4、slave:修改配置文件,设置server-id
# vim /etc/my.cnf
在 [mysqld] 添加
server-id=2 //设置服务ID,两台机器不能相同 # systemctl restart mysqld 5、slave:向谁请求从哪个位置点请求日志
# mysql -uroot -p'Qf..2022'
mysql> change master to master_user='repl' , master_password='Qf..2022' , master_host='10.3.148.200' , master_log_file='binlog.000001' , master_log_pos=600;
//配置slave去哪台机器读取日志,使用什么用户名什么密码,去读取哪个日志,从哪个点开始读 6、slave:启动同步
mysql> start slave; mysql> show slave status\G \\验证IO 和 SQL 是否都是yes

验证是否同步
1、在master创建数据库或者表,观察slave是否能同步

可能遇到的问题:
1、server-id 设置成一样
2、克隆数据库,导致UUID一样
# vim /var/lib/mysql/auto.cnf //随便修改一下UUID 3、change master to 写错了,会发现IO线程是No 或者 connection
mysql> stop slave;
mysql> reset slave; //初始化
mysql> change master to ... 4、发现SQL线程 No
5、为单个数据库添加用户名和密码,并允许哪些权限和IP连接
grant all on qqfarm.* to qqfarm@'%'identified by 'Cc..2022'
grant all on 数据库名.* to 用户名@主机名 identified by '密码'

Linux_MySQL的更多相关文章

  1. Linux_MySql安装

    1.卸载原始mysql-lib sudo rpm -e --nodeps mysql-libs-xx 2.yum安装mysql-server sudo yum -y install mysql -se ...

  2. linux_Mysql导入数据基本操作

    创建数据库:Databases 数据库名字;导入数据:    mysql -uroot -proot use   数据库名字 source < sql文件名.sql

  3. linux_mysql学习系列

    Linux&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 网站架构系列文章:http://www.cnblogs.co ...

  4. linux_MYSQL 数据库自动备份并压缩和删除历史备份

    1. 创建shell脚本 #! /bin/bash# MySQL用户user="root"# MySQL密码userPWD="123456789"# 需要定时备 ...

  5. 0基础入门 docker 部署 各种 Prometheus 案例 - 程序员学点xx 总集篇

    目录 大家好, 学点xx 系列也推出一段时间了.虽然 yann 能力有限,但还是收到了很多鼓励与赞赏.对这个系列 yann 还是很喜欢的,特别是 Prometheus 篇,在期间经历公众号 100 篇 ...

随机推荐

  1. 音视频技术入门课- 05 使用FFmpeg与OBS进行直播推流

    做直播推流的前提是要有直播服务器接收直播流,所以需要我们自己建设一个流媒体服务器. 流媒体服务器SRS SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SR ...

  2. 数据库可视化---grafana的简单使用

    简介 grafana可以连接各种数据源, 并通过给定的SQL语句做数据的定时统计和web大屏展示,也可以对外提供API进行展示, 类似这样 内含多种不同类型图表, 可以涵盖很多种监控需求, 报表可视化 ...

  3. NLB+ARR实现IIS下的高可用性负载均衡

    NLB+ARR实现IIS下的高可用性负载均衡 场景: 高可用/可伸缩集群: NLB部署: 很简单, 暂略.   3.ARR部署 ARR全称叫Application Request Router, 是I ...

  4. 【FPGA & Verilog】手把手教你实现一个DDS信号发生器

    信号发⽣器的设计与实现 1.输出波形:⽅波(占空⽐50%).锯⻮波.三⻆波.脉冲信号(占空⽐连续可调).正弦波.任意波等 2.输出频率:100KHz 3.波形选择:使⽤拨码开关选择   思路: 使用F ...

  5. chklist

    1. 重复检查的必要性.一段代码如果在测试期间没问题,也要间隔几天再去观察是否有问题.2. 如果是集群式的服务,使用定时任务要采用分布式锁,或使用工具随机发送一台都可以.3. 如果任务跑失败,需要支持 ...

  6. 吴恩达老师机器学习课程chapter09——异常检测

    吴恩达老师机器学习课程chapter09--异常检测 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十五章. 目录 吴恩达老师机 ...

  7. C# Visual Studio等,学习地址

    Visual Studio 2022 学习地址 Visual Studio系列学习地址 Csharp11 学习地址 Csharp 学习地址 W3School公营,推广技术,免费学习 W3CSchool ...

  8. Ubuntu PostgreSQL数据库忘记密码

    1. find / -name pg_hba.conf2. sudo vi /etc/postgresql/13/main/pg_hba.conf 3. 拉到最下面,把postgres所在行的md5改 ...

  9. CRLF和LF的差异

    CRLF, LF 是用来表示文本换行的方式.CR(Carriage Return) 代表回车,对应字符 '\r':LF(Line Feed) 代表换行,对应字符 '\n'.由于历史原因,不同的操作系统 ...

  10. 杭电oj 平方和与立方和

    给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和.   Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成.   Output 对于每组输入数据,输出一 ...