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

MySQL安装与基础操作指南

本篇目标:

在Centos系统下安装MySQL

学会MySQL的一些基本操作

一.MySQL的安装

说明:安装中,用户切换成为超级用户root,初期练习,mysql不进行用户管理,全部使用root进行,尽快适应mysql语句,后⾯学了用户管理,再考虑新建普通用户

<1>.先获取 mysql 官方yum 源,网站http://repo.mysql.com/,到这个页面后,我们再单击右键,

点击查看源代码,即可查看页面上更详细的信息了。

注意:我们最好安装和自己系统⼀致的 mysql 版本,否则可能会存在软件兼容性问题。Index of /232905

<2>.查看自己的系统版本,用cat /etc/redhat-release即可,操作如图:

可以进⼊ http://repo.mysql.com/ , 找⼀下和自己版本⼀致的资源,下载好后无需解析压缩包,仅

需知道这个包的位置即可,然后我们在终端处输入rz,即可将windows系统下的资源上传到linux

系统,操作如图:

<3>.安装前,查看你本地的 yum 源,用ls /etc/yum.repos.d/ -al,操作如图:

<4>.安装中,用rpm -Uvh mysql57-community-release-el7-10.noarch.rpm即可,但是要注意安装

的是我们之前在官方下载的资源。

<5>.安装后,我们再ls /etc/yum.repos.d/ -a,就会发现有新的内容

<6>.在看看能不能正常⼯作,用yum list |grep mysql。

<7>.安装mysql服务,用yum install -y mysql-community-server,如果安装遇到秘钥过期的问

题,如图所示:

解决方案: rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

<8>.查看配置文件和数据存储位置,使用ls /etc/my.cnf和ls /var/lib/mysql,操作如图:

如果看到有内容的出现,就说明安装成功了。

<9>.启动服务,使用systemctl start mysqld.service即可。

<10>.登陆,打开 mysql 配置⽂件即vim /etc/my.cnf,然后在最后⼀栏配置 中加⼊ :skip-grant-

tables选项 , 并保存退出,如图:

然后重启 mysql 服务,用systemctl restart mysqld,让这个选项生效,然后再mysql -uroot -

p,连按两次enter即可登录成功,如图所示:

使用quit即可退出。

<11>.配置my.cnf,打开这个文件即vim /etc/my.cnf,

port=3306 character-set-server=utf8 default-storage-engine=innodb

二.数据库基础

1.什么是数据库?

首先要了解用文件就可以存储数据了,为什么还要弄个数据库?

原因:

<1>.查询速度:

  • 文件:如果我们想要在文件里面想找张三的信息,只能从上向下寻找这个人的信息,并且数据量达到百万级时,查一次可能要卡死好几秒。

  • 数据库:自带极其强大的目录系统,操作可以直接定位到张三信息的那一行,百万数据也是毫秒级查出。

<2>.安全性:

  • 文件:在文件里写数据时,如果写到一半,突然服务器停电,文件可能会直接乱码变砖。

  • 数据库:有 Redo Log 和 Undo Log。停电了没关系,重启后它知道哪些写完了一半,会自动把没写完的撤销,恢复到完好如初的状态(这叫原子性和持久性)。

<3>.存储数据:

  • 内存吃不消:如果日志文件有 50 个 G,普通程序的做法往往是读进内存去处理,但这直接就把服务器内存撑爆了。

  • 数据库:数据库底层有内存缓冲池和分页机制,它只把当前需要用到的那一小块数据(通常是 16KB 一页)调进内存,极其节省资源。

<4>.程序控制:

  • 文件:假设有10个人同时往同一个文本文件里写日志。文件系统为了防止内容错乱,会直接上一把“大锁”——也就是只要有一个人在写,其他9个人全得干等着(或者互相覆盖导致数据损坏)。

  • 数据库:有自己的机制。如果A改第一行,B改第二行,大家可以同时进行,互不干扰,极大提升了吞吐量。

概念:数据库就是一个用来集中存储、管理和快速查询海量数据的“超级电子文件柜”。

2.服务器,数据库,表关系

其实我们之前安装的所谓数据库服务器,其实就是在机器上安装了一个数据库管理系统程序,这个

管理程序可以管理多 个数据库,一般开发人员会针对每一个应用创建一个数据库。

为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如下:

解释:mysql(Client)会把我们敲的 SQL 语句打包,发送给远端的mysqld服务端,然后

mysqld检查我们有没有在这个数据库里建表的权限;再逐字逐句分析我们语法正确与否,确认

检查括号有没有闭合、字段类型对不对;最后,操作系统会在底层的硬盘目录里(比如

/var/lib/mysql/my_project_db/),实实在在地创建一个名叫users.ibd的物理文件。以后这张

表里存的所有用户数据和索引,全都会塞进这个文件里。

MySQL架构,MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体 系结构的一致性,如图所示:

3.案例演示(先了解)

<1>.查看数据库

show databases;

如图:

<2>.创建数据库

create database helloworld;

然后我们在另一个终端下,进行一个操作,即cd /var/lib/mysql,此时我们可以看到一个关于

helloworld的目录,如图所示:

再进入这个目录里面,会看到这里面还会有其他的目录。

<3>.使用数据库

use helloworld;

<4>.创建数据库表

create table student( id int, name varchar(32), gender varchar(2) );

此在ll,就会出现新的内容,如图:

<5>.表中插入数据

insert into student (id, name, gender) values (1, '张三', '男'); insert into student (id, name, gender) values (2, '李四', '女'); insert into student (id, name, gender) values (3, '王五', '男');

<6>.查询表中的数据

select * from student;

如图:

结论:一个数据库(Database)相当于 一个 Linux 文件夹,一张数据表(Table) 相当于 文件夹里的物理文件,但是我们不可以划等号。

三.数据库基础操作

1.创建数据库

1.1.语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

说明:

大写的表示关键字

[] 是可选项

CHARACTER SET: 指定数据库采用的字符集

COLLATE: 指定数据库字符集的校验规则

例如:

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci。

1.2.操纵数据库操作

<1>.查看数据库

show databases;

<2>.显示创建数据库信息

show create database 数据库名;

如图:

注意:数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字 ;

/*!40100 default.... */这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

<3>.修改数据库

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...] alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name

注意:我们主要修改数据库的字符集,校验规则。

例如:我将d1数据库字符集改成gbk,如图所示:

<4>.数据库删除?

DROP DATABASE [IF EXISTS] db_ name;

注意:执行删除之后的结果,数据库内部看不到对应的数据库,并且对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

建议:不要随意删除数据库,应该要先备份。

<5>.备份和恢复

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

如图:

此时,打开mytest.sql,如图:

其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中了。

还原:,还原时,要记得备份文件的具体位

置。

<6>.查看连接情况

show processlist;

如图:

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有

可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况

2.字符集和校验规则

2.1.查看系统默认字符集以及校验规则

操作:

show variables like 'character_set_database'; show variables like 'collation_database';

如图:

这是因为之前再my.cnf中默认配置过了。

2.2.什么是字符集?

计算机底层只认识 0 和 1。字符集就像是一本翻译书,规定了英文字母、汉字、Emoji 表情应该被翻译咋样的二进制数字存进硬盘。

2.3.什么是校验规则?

数据库怎么判断两个字符串是否相等?谁排在前面?这就是校验规则说了算。

四.表的操作
1.创建表

语法:

CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

field 表示列名;datatype 表示列的类型;character set 字符集,如果没有指定字符集,则以所在数据库的默认字符集为准; collate 校验规则,如果没有指定校验规则,则以所在数据库的默认校验规则为准。

代码如图:

create table users ( id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日' ) character set utf8 engine MyISAM;

注意:不同的存储引擎,创建表的文件不一样。 users表存储引擎是MyISAM,在数据目中有三个不同的文件,分别是:users.frm:表结构 ,users.MYD:表数据, users.MYI:表索引

如图:

2.查看表结构
desc 表名;

如图:

3.修改表
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

例如,在users表添加二条记录,

insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01 04');

在users表添加一个字段,用于保存图片路径,

alter table users add assets varchar(100) comment '图片路径' after birthday;

修改name,将其长度改成60,

alter table users modify name varchar(60);

删除password列,

alter table users drop password;

修改表名为employee,

alter table users rename to employee;

将name列修改为xingming,

alter table employee change name xingming varchar(60);

注意:新字段需要完整定义。

4.删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name];

例如:

drop table t1;

本篇教程主要讲解了三件事:

  • 环境搭建:如何在 Centos 下通过 yum 源安装 MySQL,并修改配置文件实现临时免密登录和基础设置。

  • 核心概念:解释了数据库相比普通物理文件在查询速度、安全性和高并发上的绝对优势,以及“库包含表”的层级关系。

  • 基础操作:汇总了最核心的 SQL 指令,迅速实现对数据库(库)和数据表(表)的创建、查看、修改、删除与备份还原。

http://www.jsqmd.com/news/881571/

相关文章:

  • 如何解决虚拟机无法和本机互相拖拽复制文件的问题
  • CentOS7 搭建 Kubernetes 集群
  • 终极指南:5分钟快速上手科学机器学习库DeepXDE
  • 物理信息神经网络QNM-Net:用准正规模理论实现电磁散射的高效可解释建模
  • 山东大学软件学院项目实训-基于语言大模型的智能居家养老健康守护系统-个人博客(五)
  • 我是KKKKKKK
  • 别急着买云服务器!手把手教你用闲置Win10电脑搭建个人SSH服务器(保姆级教程)
  • Gemini免费额度用得少却总超限?这4类隐性消耗场景(含Embedding缓存、多轮会话状态、跨区域路由)正在悄悄吃掉你的quota
  • VS2022调试Godot 4 C#项目避坑指南:断点失效与中文乱码根因修复
  • MacOS下用ipmitool驯服联想RD450X服务器风扇噪音:从满速轰鸣到静音运行的保姆级教程
  • 助睿实验作业3-学生用户画像考勤画像可视化分析
  • 图自编码器在金融风控中的拓扑模式检测实践
  • 个人免费AI编程软件推荐:2026最新8款工具,独立开发者必看
  • ARM SME多向量浮点运算指令FAMAX/FAMIN详解
  • Gemini 3.5破解50年数学猜想,数学家紧急复核
  • 时序数据库 + 微服务:MyEMS 如何支撑千万级测点的能源管理平台
  • 2026年4月行业内好用的实验室污水处理设备订做厂家推荐,次氯酸钠发生器,实验室污水处理设备制造商口碑推荐 - 品牌推荐师
  • 机器学习预测冷等离子体处理种子萌发效果:Extra Trees模型构建与优化
  • 2026年口碑好的贵州家政培训哪家好 - 行业平台推荐
  • 家庭账目不再是一笔糊涂账
  • 不止于仿真:在Ubuntu 20.04上把Gazebo Garden装进ROS2,我的机器人开发环境才算完整
  • Linux运维排查:当进程卡死时,用ipcs命令快速定位信号量或共享内存问题
  • 信号与系统避坑指南:为什么两个三角波卷积不是尖顶脉冲?用Python和傅里叶变换给你讲透
  • 共有云环境redis的热key怎么处理
  • 2026 中国 GEO 优化定制技术解析:企业资质代办的核心作用深度测评
  • Scalify:基于e-graph的分布式机器学习计算图等价性验证工具
  • 从零开始手搓一个xv6内核页表:跟着6.S081源码一步步理解walk和mappages函数
  • 告别臃肿!用终端命令一键清理macOS Sonoma里不用的4K动态壁纸
  • VMware VMX进程异常退出深度排查指南
  • CVPR 2019 RKD论文复现踩坑记:从理论公式到可运行的PyTorch代码全解析