Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)

Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)

文章目录

前言

在 Linux 系统中,许多发行版(如 CentOS 7)默认预装 MariaDB(MySQL 的分支项目),但在实际开发、部署场景中,我们常需要安装 MySQL 官方版本以满足特定兼容性或功能需求。然而,新旧数据库环境的冲突、YUM 源配置异常、初始密码登录、中文乱码等问题,往往成为新手入门的 “绊脚石”。​

本文将从卸载冗余环境出发,一步步带你完成 MySQL 官方 YUM 源配置、服务器安装、服务启停、客户端登录(含 3 种密码解决方案)、核心配置文件(my.cnf)优化等关键操作,全程附实操命令与效果截图,兼顾实用性与易懂性。无论你是 Linux 运维新手,还是需要快速搭建 MySQL 环境的开发者,都能通过本文快速上手,避开常见坑点,高效完成 MySQL 环境的部署与配置。

卸载不要的环境

先检查是否有mariadb在运行: ps ajx |grep mariadb 

如果是这样,没有其他东西的话,就说明没有在运行
如果不是这样的话,还需要:

systemctl stop mariadb.service来停止这个服务

ps axj |grep mariadb再次看来判断是不是停止成功了

检查系统安装包

rpm -qa |grep mariadb//mariadb是mysql的一个分支项目 rpm -qa |grep mysql 
在这里插入图片描述

卸载这些包

可以一个一个删,也可以一块都删了

批量删除的方法:rpm -qa | grep mysql | xargs yum remove这是删的rpm -qa | grep mysql里面的
/etc/my.cnf里面的是MySQL/MariaDB的配置文件

/var/lib/mysql里面的是数据库的数据存储目录

这俩不会被主动删除的,–也不建议删

安装MySQL官方yum源

获取MySQL官方yum源:

http://repo.mysql.com/里面(查看网页源代码看的会更详细)

最好是安装跟自己系统一致的mysql版本,不然小心软件兼容性问题

然后通过rz指令把安装包搞到自己的系统里面

安装软件配置包:rpm -Uvh mysql57-community-release-el7.rpm

可以看ls /etc/yum/repos/d/ -l来看安没安装上

yum list |grep mysql可以查看有关mysql的软件包
之后就yum install -y mysql-community-server安装MySQL服务器的核心主程序包

这一步安装失败的问题:

通过这个解决:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

使用程序

注意:与存储相关的网络服务器进程默认通常需要 root 权限启动,比如mysqld

但是mysql不需要哈,mysql是客户端,用于连接已启动的 MySQL 服务器然后进行操作
systemctl start mysqld.service或者systemctl start mysqld来启动MySQL的后台服务端

可以用ps ajx |grep mysqld来查看是不是启动成功了

这样就是启动成功了
mysql -uroot -p来启动客户端:
这里就会询问你密码:(有三种方法)

1.老版本的方法:没有密码,可以直接登录(password那里直接回车就行)

2.获取临时密码:sudo grep 'temporary password' /var/log/mysqld.log

3.打开mysql的配置文件vim /etc/my.cnf,在最后一栏放上skip-grant-tables,然后重启mysqld(重启可以用systemctl restart mysqld或者先关闭再启动)


这样就是登录成功了

配置my.cnf

打开/etc/my.cnf(my.cnf后面不加/!)

给补充成这样:

port=3306:指定 MySQL 服务监听的网络端口(MySQL默认用的是3306–所以这个不写也行)

character-set-server=utf8:设置 MySQL 服务器端的默认字符集为 utf8,解决中文等非英文字符的乱码问题

default-storage-engine=innodb:指定 MySQL 创建表时的默认存储引擎为 InnoDB

引申:datadir那个是对应的数据存放路径

引申:一些其他的指令

systemctl enable mysqld--让mysqld开机自启动 --这个一般是不需要的,因为云服务器也基本上是不关机的 systemctl daemon-reload--重新加载所有服务的配置文件(重启mysqld代替不了这个) --修改了/usr/lib/systemd/system/mysqld.service里面的东西才需要 
打断数据的话还是ctrl+c ctrl+d是退出mysql客户端 

Read more

【C++】手搓AVL树

【C++】手搓AVL树

手搓AVL树 * 手搓AVL树 * github地址 * 0. 前言 * 1. 二叉搜索树的缺陷 * 性能分析 * 2. 什么是AVL树 * 概念与定义 * 平衡因子 * 基本性质 * 为什么AVL树不要求左右子树的高度为0呢? * 3. AVL树的实现 * 整体架构设计 * AVL树的结点定义 * AVL树设计 * AVL树的操作实现 * 插入 * 1. 本质 * 2. 思路简述 * 3. 二叉搜索树的插入逻辑 * 4. 更新平衡因子 * 1. 插入后父节点的平衡因子变化分析 * 2. 平衡因子更新后的三种情况: * 3. 更新平衡因子的最坏情况 * 4. 更新平衡因子的代码实现 * 旋转操作 * 旋转的目的 * 一、左单旋 * 触发条件 * 左单旋原理与核心操作 * 代码实现

By Ne0inhk

Qt C++ 串口通信+数据可视化:工业设备数据实时采集与界面显示

一、技术背景与应用场景 工业现场中,PLC、传感器、智能仪表等设备常通过串口(RS232/RS485)输出实时运行数据(如温度、压力、转速、电压等)。Qt作为跨平台的C++应用开发框架,兼具串口通信API与强大的界面/绘图能力,是开发工业数据采集与可视化系统的理想选择。本文将完整实现一套工业设备数据实时采集系统,涵盖串口参数配置、数据解析、实时绘图、数据存储与异常报警等核心功能,满足工业场景下的高可靠性与实时性要求。 二、系统整体设计 2.1 核心功能模块 系统分为5个核心模块,各模块解耦设计,便于维护与扩展: 1. 串口通信模块:负责串口参数配置、数据收发、异常处理(如断连重连); 2. 数据解析模块:对串口接收的二进制/ASCII数据进行解析,提取有效工业参数; 3. 可视化模块:基于Qt Charts实现实时曲线绘制、数值仪表盘、数据表格展示; 4.

By Ne0inhk
2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。 希望能帮到,那些与我一同前行的,来自远方的朋友😉 大纲:  1、握手问题-(解析)-简单组合问题(别人叫她 鸽巢定理)😇,感觉叫高级了  2、小球反弹-(解析)-简单物理问题,不太容易想  3、好数-(解析)-简单运用分支计算  4、R 格式-(解析)-高精度,不是快速幂😉  5、宝石组合-(解析)-lcm推论(gcd、lcm结合)  6、数字接龙-(解析)-DFS(蓝桥专属、每年必有一道)  7、拔河-(解析)-定一端,动一端😎 题目: 1、握手问题 问题描述

By Ne0inhk