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

文章目录

前言

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

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

卸载不要的环境

bash 复制代码
先检查是否有mariadb在运行:
ps ajx |grep mariadb

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

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

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

检查系统安装包

bash 复制代码
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那个是对应的数据存放路径

引申:一些其他的指令

bash 复制代码
systemctl enable mysqld--让mysqld开机自启动
--这个一般是不需要的,因为云服务器也基本上是不关机的


systemctl daemon-reload--重新加载所有服务的配置文件(重启mysqld代替不了这个)
--修改了/usr/lib/systemd/system/mysqld.service里面的东西才需要
bash 复制代码
打断数据的话还是ctrl+c
ctrl+d是退出mysql客户端
相关推荐
里欧跑得慢23 分钟前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
IT毕设实战小研35 分钟前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
赵文宇(温玉)37 分钟前
OpenEuler24.03 SP4 系统安装(欧拉/麒麟V10)
linux·openeuler·欧拉
xxwl5851 小时前
MySQL 基础学习笔记
数据库·mysql
Rain的Java大神之路1 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
萌动的小火苗2 小时前
数据结构面试题【无答案】
c语言·开发语言·数据结构·链表
Brilliantwxx2 小时前
【Linux】 进程(7)深度剖析 进程内核O(1)调度队列 + 饥饿问题
linux·运维·服务器
程序员-Benothing2 小时前
MySQL 中的 MVCC 是什么?如果没有 MVCC,会有什么影响?
数据库·mysql
雨声不在3 小时前
docker-android Android 16 支持与编译修改
android