先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
(2)在定义完所有列之后指定主键,语法格式如下:
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
##### 多字段主键
主键由多个字段联合组成,语法格式如下:
PRIMARY KEY [字 字段 2, …, 字段时
#### 外键约束
外键用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或者多个外键。
外键对应的是参照完整性,一个表的外键可以为空值。若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键首先是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。
外键的主要作用是保证数据引用的完整性,在定义外键后不允许删除在另一个表中具有关联关系的行。
外键还保证数据的一致性、完整性。例如部门表 tb dept 的主键 id 在员工表 db\_5 中有-个键 deptld 这个 id 关联。
* 主表(父表):对于两个具有关联关系的表而言 相关联字段中主键所在的那个表即是主表。
* 从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。
创建外键的语法格式如下:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [字段名2,…]
REFERENCES <主表名> 主键列1 [,主键列2,…]
”外键名“为定义的外键约束的名称,在一个表中不能有相同名称的外键:”字段名“表示子表需要添加外键约束的字段列。
#### 查看数据表基本结构
使用 DESCRIBE/DESC 语旬可以查看表字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,其语法格式如下:
DESCRIBE <表名>;
或者
DESC <表名>;
#### 查看数据表详细结构
SHOW CREATE TABLE 语句可以用来查看表的详细信息,语法格式如下:
SHOW CREATE TABLE <表名> \G;
#### 修改表名
MySQL 是通过 ALTER TABLE语句来实现表名的修改的,具体语法格式如下
ALTER TABLE <旧表名> RENAME TO <新表名>
其中, TO 为可选参数,使用与否不影响结果。
#### 修改字段数据类型
修改字段数据类型就是把字段的数据类型转换成另一种数据类型。在 MySQL 中修改字段数据类型的语法格式如下:
ALTER TABLE <表名> MODIFY <字段> <字段类型>;
#### 修改字段名
MySQL 中修改表字段名的语法格式如下:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新字段类型>
#### 添加字段
添加字段的语法格式如下:
其中,新字段名为需要添加的字段名称 FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段: AFTER 为可选参数,其作用是将新添加的字段添加到已存在字段名指定的字段后面。
ALTER TABLE <表名> <新字段名> <新字段类型> [约束条件] [FIRST| AFTER 已存在的字段名];
#### 删除字段
删除字段是将数据表中的某个字段从表中移除,其语法格式如下:
ALTER TABLE <表名> DROP <字段名>;
#### 修改字段排序
对于已经创建的数据表,读者也可以根据实际工作的需要修改字段的排列顺序,通常使用 ALTER TABL 改变字段的排列顺序,其语法格式如下:
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
#### 更改表的存储引擎
更改表的存储引擎的语法格式如下:
ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
#### 删除表的外键约束
对于数据库中定义的外键,如果不再需要可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系。 MySQL中删除外键的语法格式如下:
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
其中, “外键约束名”指在定义表时CONSTRAIN 关键字后面的参数。
#### 删除没有被关联的表
在MySQL 中使用 DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表,语法格式如下:
DROP TABLE [IF EXISTS ]表1,表2, … 表n;
其中,”表“ 指要删除的表的名称。用户可以同时删除多个表,只需将要删除的表名依次写在后面,相互之间用逗号隔开即可。
#### 基本查询语旬
MySQL 从数据表中查询数据的基本语句为 SELECT 语旬。 SELECT 语旬的基本格式如下:
SELECT
{*|<字段列表>}
[
FROM <表 1>,<表 2> ···
[WHERE <表达式>]
[GROUP BY ]
[HAVING [{ }…]]
[ORDER BY ]
[LIMIT [,] ]
]
SELECT [字段1,字段2,…,字段n]
FROM [表或视图]
WHERE [查询条件];
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210613001215662.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzc5MTMwMw==,size_16,color_FFFFFF,t_70)
### 六、数据库备份和恢复
#### 使用 mysqldump 备份
mysqldump是MySQL 提供的一个非常有用的数据库备份工具。在执行 mysqldump 命令时,可以将数据库备份成个一个文本文件,该文件中实际上包含了多个 CREATE INSERT 语旬,使用这些语旬可以重新创建表和插入数据。
mysqldump 语句的基本语法格式如下:
mysqldump -u user -h host -p password dbname [tbname ,[tbname…]] > filename.sql
各个参数的含义如下:
* user 表示用户名称。
* host 表示登录用户的主机名称。
* password 为登录密码。
* dbnam 为需要备份的数据库名称
* tbname dbname 数据库中需要备份的数据表,可以指定多个需要备份的表。
* 右箭头符号“>”告诉 mysqldump 将备份数据表的定义和数据写入到备份文件。
* filename.sq 为备份文件的名称。
1 .使用 mysqldump 备份单个数据库中的所有表
mysqldump -u root -p mytest > /back/mytest_20210613.sql
2.mysqldump 还可以备份数据库中的某个表 其语法格式如下:
mysqldump - u user - h host - p dbname [tbname , [tbname ···]] > filename . sql
#### 使用 mysqlhotcopy 快速备份
mysqlhotcopy 是一 Perl脚本,最初由 Tim Bunc 编写并提供。它使用 LOCK TABLES、FLUSH TABLES 和cp (或 scp )来快速备份数据库。它备份数据库或单个表的最快的途径,但它只能运行在数据库 目录所在的计算机 ,并且只可以备份 MyISAM 类型的表。 mysqlhotcopy Unix 系统中运行。
mysqlhotcopy 命令的语法格式如下:
mysqlhotcopy db_name_1,…db_name_n /path/to/backup_directory
db\_namel db\_name\_n 分别为需要备份的数据库的名称:/path/to/backup\_directory指定备份文件目录。
#### 使用 mysql 还原
mysql -u user -p [dbname] < filename.sql
各个参数的含义如下:
* user 是执行 backup 中语旬的用户名
* p 表示输入用户密码。
* dbnarne 数据库名。
* 如果 filename.sq 文件为 mysqldump 工具创建的包含创建数据库语句的文件,在执行的时候不需要指定数据库名。
#### 使用 mysqlhotcopy 恢复
mysqlhotcopy 备份后的文件也可以用来恢复数据库,在 MySQL 服务器停止运行时将备份的数据库文件复制到MySQL 存放数据的位置( MYSQL的Data 文件夹),重新启动 MySQL 服务即可。如果以根用户执行该操作,必须指定数据库文件的所有者,输人语句如下:
为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
![](https://img-blog.csdnimg.cn/img_convert/e35409bd838176e8c0a64a8f36a981c6.png)
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/2cd3a234c9f10ed1e68f9b996431240f.jpeg)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
abbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-SB7TbiN9-1713212747364)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**