Linux_MySQL
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的更多相关文章
- Linux_MySql安装
1.卸载原始mysql-lib sudo rpm -e --nodeps mysql-libs-xx 2.yum安装mysql-server sudo yum -y install mysql -se ...
- linux_Mysql导入数据基本操作
创建数据库:Databases 数据库名字;导入数据: mysql -uroot -proot use 数据库名字 source < sql文件名.sql
- linux_mysql学习系列
Linux&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 网站架构系列文章:http://www.cnblogs.co ...
- linux_MYSQL 数据库自动备份并压缩和删除历史备份
1. 创建shell脚本 #! /bin/bash# MySQL用户user="root"# MySQL密码userPWD="123456789"# 需要定时备 ...
- 0基础入门 docker 部署 各种 Prometheus 案例 - 程序员学点xx 总集篇
目录 大家好, 学点xx 系列也推出一段时间了.虽然 yann 能力有限,但还是收到了很多鼓励与赞赏.对这个系列 yann 还是很喜欢的,特别是 Prometheus 篇,在期间经历公众号 100 篇 ...
随机推荐
- mysql企业常用集群架构
转自 https://blog.csdn.net/kingice1014/article/details/76020061 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般 ...
- zk-复制安装
Zookeeper系列一:Zookeeper介绍.Zookeeper安装配置.ZK Shell的使用 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分 ...
- 在java路径上找不到javax.servlet.http.HttpServlet
1.将写好的网页代码导入Java中会发现index.jsp文件开头部分出现报错 2.错误提示是找不到java路径问题 3.在项目中鼠标右键进行找到Build Path选项点击进去 4.找到Librar ...
- PyTables学习 (数据保存形式,对象树结构)
参考自http://www.pytables.org/usersguide/introduction.html PyTables的主要目的是提供一个好的操作HDF5文件的方法. HDF文件是分层数据格 ...
- 备份Cisco交换机设备配置
需求: 备份网络核心设备配置 工具: 1.3CDaemon软件,用于配置TFTP服务器 链接:http://www.china-ccie.com/download/3CDaemon/3CDaemon. ...
- android cannot generate view binders android.databinding.tool.util.LoggedErrorException
错误: Cannot resolve type 'viewModel'错误: cannot generate view binders android.databinding.tool.util.Lo ...
- 【STM32】电能表抄表功能实现|自学笔记
一.抄表的原理 抄表就是读电能表的测量参数,一般有电能,电压,电流,实时功率,功率因数等,用单板抄表其实就是读电能表种相应寄存器中的值.智能电表目前主流协议有DLT645国标各家通用,MODBUS各家 ...
- mybatis -plus基础
- fastadmin打包插件
<?php namespace app\command; use think\console\Command; use think\console\Input; use think\consol ...
- 5分钟上手使用vuex,vuex状态管理,vuex遇到的坑
很多刚学习vue的人对于全局变量管理工具vuex都觉得很神秘,今天就用很通俗的大白话协助大家理解一下vuex,作者的vue项目使用vue脚手架搭建的,用脚手架搭建的项目会在src文件夹下有一个stor ...