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 篇 ...
随机推荐
- docker 操作常用命令
镜像 #以tomcat为基础镜像创建一个容器,容器名为my-tomcat #拉取tomcat最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取. do ...
- ubuntu 16.04升级到18.04 出现apt-get问题解决
0.背景 编译webrtc安卓版时要升级系统,升级到18.04之后,安装安卓环境时出现以下问题(./build/install-build-deps.sh): libasan2-armhf-cross ...
- CAD怎么删除图块注释?删除CAD图块注释步骤
CAD设计过程中,有时候会在图纸中添加许多注释,如:文字注释,图块注释,标注样式注释等.当需要删除图纸中的CAD图块注释时,你知道该如何操作吗?本节课程小编就来给大家分享一下浩辰CAD软件中删除CAD ...
- Spark log4j 配置
Spark的ml包提供了非常好用的调参功能,通过ParamGridBuilder构建待选参数(如:logistic regression的regParam),然后数据量小的时候可以用CrossVali ...
- 记慢慢实现学习cocos 制作游戏
以下皆为记录所用 现在根据官方教程,我已经实现了一个小东西可以上下跳动 了解了Sprite挂载脚本,以及编辑脚本,还有动画的一些入门东西 还了解了如何设置监听键盘按下的输入,这个是没问题的 问题一 如 ...
- 用户警告:“importlib-metadata”版本与“setuptools”不兼容。升级importlib-metadata
Warning: `importlib-metadata` version is incompatible with `setuptools` 解决方案:升级 importlib-metadata 版 ...
- ajax thisisunsafe
ajax 从chrome发出,对方公钥证书不是符合要求CA签发的,则会ssl握手失败,也没有机会强制信任 比如:http代理服务器(三)fiddler[重点] 当然应该可以从ajax指定信任一切服务端 ...
- Installation requirements for DB2 UDB 8.1 Enterprise Servers
UDB 8 Install HomeUppre-UDB 8 InstallUDB 8 Install Addendum Steps to do before/after applying a DB ...
- redis的持久化方案RDB和AOF
RDB:快照形式,定期把内存中当前时刻的数据保存到磁盘.Redis默认支持的持久化方案.速度快但是服务器断电的时候会丢失部分数据 AOF形式:append only file.把所有对redis数据库 ...
- @EnableAspectJAutoProxy 注解的作用 —— 转载
@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)解决同类方法调用时异步和事务不生效:我们在开启springboo ...