当前位置: 首页 > news >正文

关于linux上root连接mysql时遇到的一点小问题以及rsync通过ssh的文件同步传输以及免密码传输的实现

一、关于linux上root连接mysql时遇到的一点小问题

    今天因为工作需要,需要使用root连接一下很久没有连接过的mysql服务器了,一看找不到root密码了,记得当时我在搭建整个mysql主从的时候,我明明把root密码记录在了txt文件上的,不知道怎么回事这个文件上的那行账号密码不见了。是不是就没有撤了呢?root密码是可以重置的,可以使用以下命令进行密码重置:

#sudo /etc/init.d/mysql stop 
#sudo /opt/modules/mysql/bin/mysqld_safe –skip-grant-tables & 
#sudo mysql -uroot -p 
mysql>update mysql.user set password=password('111111') where user=’root’; 
mysql>flush privileges; 

    当然我这里不需要考虑重置,因为我很清楚记录我当时把这个root密码发给过团队成员,于是找到邮箱发送记录找到了这个root密码,事情好像完了,可以使用这个密码一登录发现登录不上:

[online@OSER13 ~]$ sudo mysql -u root -h 192.168.162.16 -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'192.168.162.16' (using password: YES)

     纳闷了,这个密码是绝对没有问题的,除非只有一种情况,那就是团队同事修改了密码,但这我相信是不可能的!但眼前的现实又让我不得不怀疑,于是我开始进行了其它的尝试

[online@OSER13 ~]$ sudo mysql -h 127.0.0.1 -u root -p             
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

      竟然找不到127.0.0.1的MySQL server,可以查看配置文件/etc/my.cnf里确实有看到配置:

datadir = /opt/data/mysql
bind-address=127.0.0.1
bind-address=192.168.162.16

         通过netstat查看端口发现也确实没有看到127.0.0.1上的3306在监听:

[onlinedev@BFG-OSER-4414 ~]$ netstat -anp | grep 3306
(No info could be read for "-p": geteuid()=30548 but you should be root.)
tcp        0      0 192.168.162.16:3306         0.0.0.0:*                   LISTEN      -                   
..... 

     于是我又找了一下bind-address配置的事情,因为我原来在配置的时候看到网上有说mysql可以绑定多个IP,换行写bind-address即可.但从这里来看,这个并没有起作用。看到mysql的bind-address是不允许配置多个IP的,mysql官方明确指出bind-adress只允许制定一个参数。这样来看bind-address的配置算是被验证了,上面这行bind-address=127.0.0.1也是白写了。回到mysql的连接上来,现在mysql怎么连接呢?127.0.0.1根本没有服务,192.168.162.16从现在来看问题就是没有配置这个root/host的密码。所以现在只能通过localhost连接了,

[onlinedev@BFG-OSER-4413 ~]$ sudo mysql -h localhost -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.33
Connection:             Localhost via UNIX socket

        可以看到通过localhost终于连接进来,我还以为真有人在搞坏事把root密码改了呢,进入到mysql里查看一下账号,发现确实root没有配置host为192.168.162.16的密码,导致进入不了。

mysql> select  user,host,password from user;
+----------+---------------+-------------------------------------------+
| user     | host          | password                                  |
+----------+---------------+-------------------------------------------+
| root     | localhost     | *4...5 |
| root     | 127.0.0.1     | *4...5 |
......
+----------+---------------+-------------------------------------------+
5 rows in set (0.00 sec)

     另外查了一下mysql -h localhost和mysql -h 127.0.0.1的区别,通过localhost连接到mysql是使用UNIX socket,而通过127.0.0.1连接到mysql是使用TCP/IP。上面的Connection项里可以看到值为Localhost via UNIX socket,而如果是通过127.0.0.1进来Connection的值为127.0.0.1 via TCP/IP。

二、rsync通过ssh的文件同步传输以及免密码传输的实现

    通常rsync有两种传输方案,一种是rsync-daemon方式,也就是在目标机器上安装rsync服务端,设置账号密码及传输目录,然后客户端使用rsync及账号密码传输即可。此时的密码是写在密码文件里(其它用户不可访问),详见:Shell脚本中应用 Rsync 保持两服务器间文件几秒内同步 及 rsync实现服务器间文件同步的正确用法_shell rsync-CSDN博客

    另一种方式为ssh,有时使用ssh更方便。比如:

#从远程同步到本地:
[root@123 ~]# rsync -avzP -e ssh 114.215.80.214:/root/c.txt ./          
root@114.215.80.214's password: 
receiving incremental file list
c.txt63691 100%   60.74MB/s    0:00:00 (xfer#1, to-check=0/1)sent 30 bytes  received 14341 bytes  2210.92 bytes/sec
total size is 63691  speedup is 4.43
#从本地同步到远程:
[root@123 ~]# rsync -avz -e ssh ./num.php 114.215.80.214:/root/
root@114.215.80.214's password: 
sending incremental file list
num.phpsent 150 bytes  received 31 bytes  8.42 bytes/sec
total size is 105  speedup is 0.58
#指定ssh的端口传输
[root@123 ~]# rsync -avz -e 'ssh -p 20000' ./num.php 114.215.80.214:/root/

     rsync的-a选项很好用,且功能非常强大,一般传文件有-avz选项就够了,如果要传递目录,加上-r选项,保持软链接加上-l选项,加上大写的P选项保留那些因故没有完全传输的文件,以加快随后的再次传输。另外在使用ssh时候,默认用的是ssh的22端口,如果服务器的ssh不是22端口的话,则需要加选项-p指定端口。如上面的指定ssh的端口传输示例。rsync的更多参数见:关于linux下grep --color自定义高亮颜色的处理以及基于ssh的rsync服务器间文件同步功能及与基于rsync服务端的区别-CSDN博客

        但在上面的执行过程中有一个麻烦就是要每次输入密码,在终端上命令执行时还能行,但是如果是放在脚本或者是定时任务里执行的话可就不行了。这时也是有办法的:

办法1:通过rsync的一个参数--password-file=FILE 

        --password-file=FILE 可以让rsync从FILE文件中得到密码字符串从而实现。但是这会有安全问题,就相当于暴露了目标服务器的密码。

方法2:通过ssh公钥的方式

    在本机(执行rsync命令的机器)生成一个ssh公钥,然后将内容存放在远程机器上。先在要执行的rsync机器上查看id_rsa.pub文件是否存在,然后利用ssh-keygen生成此文件,将内容传到目标机器上存放在/用户/.ssh/下并更名为authorized_keys,当然如果这个authorized_keys文件存在,则可以追加到这个文件的后面。

#密钥验证的实现:
[root@iZ282iltjiwZ ~]# ll  /root/.ssh/id_rsa.pub
ls: cannot access /root/.ssh/id_rsa.pub: No such file or directory
#也可以使用ssh-keygen -t rsa
[root@iZ282iltjiwZ ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f4:a2:2d:59:7e:b5:a3:d1:f0:7a:67:92:d2:9e:09:7d root@iZ282iltjiwZ
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        .        |
|       . .       |
|        S o .    |
|       * . * .   |
|      + o +.*.E  |
|       . ..===o  |
|          o+++   |
+-----------------+
[root@iZ282iltjiwZ ~]# ll  /root/.ssh/id_rsa.pub
-rw-r--r-- 1 root root 399 Sep 21 10:41 /root/.ssh/id_rsa.pub
#完成将密钥文件放到目标服务器后再执行文件传输时会发现不会再提示密码输入了:
[root@123 ~]# rsync -avz -e ssh ./z.log  114.215.80.214:/root/
sending incremental file list
z.log
sent 1137 bytes  received 37 bytes  782.67 bytes/sec
total size is 2507  speedup is 2.14
[root@123 ~]# 

相关文章:

关于linux上root连接mysql时遇到的一点小问题以及rsync通过ssh的文件同步传输以及免密码传输的实现

一、关于linux上root连接mysql时遇到的一点小问题 今天因为工作需要,需要使用root连接一下很久没有连接过的mysql服务器了,一看找不到root密码了,记得当时我在搭建整个mysql主从的时候,我明明把root密码记录在了txt文件上的&#…...

一、Socket介绍(也叫套接字)

一、定义 通过IP地址或者端口 将两个电脑连接起来; Socket是网络通信最常用的,除了这个还有HTTP; Http是一个弱联网;Socket用于长连接,使用的是Tcp; 除了这个还有一个SuperSocket,是对Socket…...

虚拟现实技术的发展现状如何?

虚拟现实(VR)技术自2016年被广泛认为是元年之后,经历了快速增长和随后的调整期。目前,VR行业正处于快速发展期,技术不断进步,应用场景持续拓展。2024年VR技术发展现状概述: 1、行业发展阶段&am…...

实时美颜技术的实现:视频美颜SDK与直播美颜工具的最佳实践

视频美颜SDK与直播美颜工具的诞生,为主播美颜一需求提供了技术支撑。接下来,笔者将深入探讨实时美颜技术的实现及其在视频美颜SDK与直播美颜工具中的最佳实践。 一、实时美颜技术的核心原理 具体来说,主要包括以下几个步骤: 1.…...

Java中的司机抢单实现:并发问题与解决方案

文章目录 司机抢单的基础实现乐观锁解决并发问题 总结 在共享经济的浪潮中,像滴滴打车这样的服务已经成为我们生活中不可或缺的一部分。对于司机和平台来说,抢单是一个关键环节,如何在保证系统高效运行的同时,确保抢单过程的公平与…...

2、Unity【基础】Mono中的重要内容

Unity基础 MonoBehavior中的重要内容 文章目录 Mono中的重要内容1、延迟函数1、延迟函数概念2、延迟函数使用3、延迟函数受对象失活销毁影响思考1 利用延时函数实现计时器思考2 延时销毁 2、协同程序1、Unity是否支持多线程2、协同程序概念3、协同程序和线程的区别4、协程的使用…...

C++11:右值引用、移动语义和完美转发

目录 前言 1. 左值引用和右值引用 2. 引用范围 3. 左值引用的缺陷 4. 右值引用的作用 5. 右值引用的深入场景 6. 完美转发 总结 前言 C11作为一次重大的更新,引入了许多革命性的特性,其中之一便是右值引用和移动语义。本文将深入探讨其中引入的…...

【大模型部署及其应用 】RAG检索技术和生成模型的应用程序架构:RAG 使用 Meta AI 的 Llama 3

目录 RAG检索技术和生成模型的应用程序架构1. **基本概念**2. **工作原理**3. **RAG的优势**4. **常见应用场景**5. **RAG的挑战**6. **技术实现**参考RAG 使用 Meta AI 的 Llama 3亲自尝试运行主笔记本与文档应用聊天关键架构组件1. 自定义知识库2. 分块3. 嵌入模型4. 矢量数据…...

python 速成指南

第一节. 过程式 python python 的一个特点是不通过大括号 {} 来划定代码块,而是通过缩进。如果和 C/C++ 类比的话,就是在左括号的地方不要换行,然后用一个冒号 (:) 替代, C/C++ 大括号内部的东西,缩进一个 tab 或者几个空格都可以(但需要保持一致),比如: if (x <…...

多重示例详细说明Eureka原理实践

Eureka原理&#xff08;Eureka Principle&#xff09;是指在长时间的思考和积累之后&#xff0c;通过偶然的瞬间获得灵感或发现解决问题的方法的一种认知现象。这个过程通常包括三个主要阶段&#xff1a;准备阶段、潜伏期以及突然的灵感爆发。下面详细说明Eureka原理的实践步骤…...

Qt下让程序只运行一个实例,避免重复打开

参考 【实现QT单例程序 QSystemSemaphore QSharedMemory】 做了一点点更改&#xff0c;主要是在openEuler上用时遇到的一点问题。 QSharedMemory *unimem nullptr; void checkExist() {QString memName "SingleApp"; // 注意这名字要每个工程不一样&#xff0c;否…...

考研交流平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图详细视频演示技术栈系统测试为什么选择我官方认证玩家&#xff0c;服务很多代码文档&#xff0c;百分百好评&#xff0c;战绩可查&#xff01;&#xff01;入职于互联网大厂&#xff0c;可以交流&#xff0c;共同进步。有保障的售后 代码参考数据库参…...

哈希表--有效的字母异位词

给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true示例 2: 输…...

GC终结标记 SuspendEE 是怎么回事

一&#xff1a;背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题&#xff0c;在 !t -special 输出中有一个 SuspendEE 字样&#xff0c;这个字样在 coreclr 中怎么弄的&#xff1f;输出如下&#xff1a; 0:000> !t -special ThreadCount: 3 UnstartedTh…...

Ubuntu 中GCC交叉编译工具链安装

​ Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff0c;如果要编译的是 ARM 架构的代码&#xff0c;就需要一个在 X86 架构的 PC 上运行&#xff0c;可以编译 ARM 架 构代码的 GCC 编译器&#xff0c;这个编译器就叫做交叉编译器&#xff0c;总结一下交叉编译器就是&#x…...

JEXL(Java Expression Language)用法概览

JEXL&#xff08;Java Expression Language&#xff09;是一个用于在Java应用程序中解析和执行表达式的库。JEXL的设计目的是通过提供一种类似于脚本语言的语法&#xff0c;使得可以在应用程序中动态地计算表达式的值。JEXL常用于模板引擎、规则引擎和配置文件等场景。 下面介…...

NC 完全二叉树结点数

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一棵完全…...

点灯案例优化(二) 利用位运算修改特定位

前面&#xff0c;我们对点灯代码进行了第一次优化&#xff0c;效果如下 尽管第一次优化以后代码可读性确实高了不少&#xff0c;也看起来更加简洁&#xff0c;但是&#xff0c;这里仍旧存在一个很严重的问题&#xff1a;就在每一个表达式右边&#xff0c;我们给寄存器的数据赋值…...

【C++备忘录】

记录一些C比较好用的代码块&#xff0c;方便自个查看。 使用std::copy 快速打印序列 #include <iostream> #include <algorithm> #include <iterator>int main() {int a[5] { 1, 2, 3, 4, 5 };copy(begin(a), end(a), ostream_iterator<int>(cout, …...

java编程 斐波拉契数列算法集锦【斐波拉契数列】【下】【集合类】【Stream函数式编程】

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;是一个非常经典的递归问题。斐波那契数列的算法描述&#xff1a; 斐波那契数列&#xff0c;一个令人着迷而又充满神秘色彩的数字序列&#xff0c;它以0和1作为起始&#xff…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...