MySQL安装与基础操作指南

MySQL安装与基础操作指南 本篇目标在Centos系统下安装MySQL学会MySQL的一些基本操作一.MySQL的安装说明安装中用户切换成为超级用户root初期练习mysql不进行用户管理全部使用root进行尽快适应mysql语句后⾯学了用户管理再考虑新建普通用户1.先获取 mysql 官方yum 源网站http://repo.mysql.com/到这个页面后我们再单击右键点击查看源代码即可查看页面上更详细的信息了。注意我们最好安装和自己系统⼀致的 mysql 版本否则可能会存在软件兼容性问题。Index of /2329052.查看自己的系统版本用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-20228.查看配置文件和数据存储位置使用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.cnfport3306 character-set-serverutf8 default-storage-engineinnodb二.数据库基础1.什么是数据库首先要了解用文件就可以存储数据了为什么还要弄个数据库?原因1.查询速度文件如果我们想要在文件里面想找张三的信息只能从上向下寻找这个人的信息并且数据量达到百万级时查一次可能要卡死好几秒。数据库自带极其强大的目录系统操作可以直接定位到张三信息的那一行百万数据也是毫秒级查出。2.安全性文件在文件里写数据时如果写到一半突然服务器停电文件可能会直接乱码变砖。数据库有 Redo Log 和 Undo Log。停电了没关系重启后它知道哪些写完了一半会自动把没写完的撤销恢复到完好如初的状态这叫原子性和持久性。3.存储数据:内存吃不消如果日志文件有 50 个 G普通程序的做法往往是读进内存去处理但这直接就把服务器内存撑爆了。数据库数据库底层有内存缓冲池和分页机制它只把当前需要用到的那一小块数据通常是 16KB 一页调进内存极其节省资源。4.程序控制文件假设有10个人同时往同一个文本文件里写日志。文件系统为了防止内容错乱会直接上一把“大锁”——也就是只要有一个人在写其他9个人全得干等着或者互相覆盖导致数据损坏。数据库有自己的机制。如果A改第一行B改第二行大家可以同时进行互不干扰极大提升了吞吐量。概念数据库就是一个用来集中存储、管理和快速查询海量数据的“超级电子文件柜”。2.服务器数据库表关系其实我们之前安装的所谓数据库服务器其实就是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多 个数据库一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。数据库服务器、数据库和表的关系如下解释mysqlClient会把我们敲的 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将其长度改成60alter table users modify name varchar(60);删除password列alter table users drop password;修改表名为employeealter table users rename to employee;将name列修改为xingmingalter table employee change name xingming varchar(60);注意新字段需要完整定义。4.删除表DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name];例如drop table t1;本篇教程主要讲解了三件事环境搭建如何在 Centos 下通过 yum 源安装 MySQL并修改配置文件实现临时免密登录和基础设置。核心概念解释了数据库相比普通物理文件在查询速度、安全性和高并发上的绝对优势以及“库包含表”的层级关系。基础操作汇总了最核心的 SQL 指令迅速实现对数据库库和数据表表的创建、查看、修改、删除与备份还原。