Linux运维 第四阶段 (一) MySQL基本概念及编译安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

一、相关基础概念:

1、  文件存储:数据冗余和不一致性;数据访问困难;数据孤立;完整性问题;原子性问题;并发访问异常;安全性。

2、  DBMS(DataBase Management System)功能:数据管理的独立性;有效地完成数据存取;数据完整性、安全性;数据集中管理;并发存储、数据恢复;减少应用程序开发周期。

3、  RDBMS(Relational DBMS):数据库和表的创建、删除、修改;索引的创建、删除;用户和权限的管理;数据的增删改查等。

4、  DML(Data Manapulate language)INSERT INTOUPDATEDELETEREPLACESELECT

DDL(Definition)CREATEALTERDROP

DCL(Control)GRANTREVOKE

注:命令不区分大小写,但最好养成良好的习惯,命令用大写,方便以后查看复杂语句等等。

5、  程序:指令+数据。二分法查找14次可找到数据;BTREE索引4次可找到数据。

6、  数据的组织结构:层次型(有上下级关系,耦合度紧密);网状结构;关系型结构(表)。

7、  马哥的蒸馒头理论:系统提供给我们的是种子;库提供给我们的是面;通过SHELL我们就可以有馒头了。

8、  程序员或开发人员通过驱动(翻译软件,编程接口比API更简单易用)来完成查询操作;一般用户通过终端登录命令行操作;线程池:大量用户流进、控制流量。

9、  IOE化(IBMORACLEEMC)。

10、             MySQLMy StructureQuery Language)软件包格式:二进制包(软件包管理器特有的RPMEXEMSI);通用二进制格式(不用安装,解压后简单配置即可使用);源码包(编译安装)。

11、             MYSQLC/S架构,client-side(软件mysql)server-side(软件mysql-server)

12、             安装完成后MYSQL需初始化(初始化就是建立MYSQL自身数据库,库名就是mysql,普通用户登录看不到此库)。

13、             server-side登录:

#mysql (使用此方法直接登录,则默认用root、空密码、本地登录);

#mysql  -u(--user)  USERNAME -p(--password)  -h(--host)  my_server -u 指定用户,-p 需输入密码,若空密码直接回车,-h指定指定哪一台主机或IP登录)。

14、             元数据区(存元数据如INODE);数据区(划分为磁盘块)。

15、             RDB对象:库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器。

16、             CONSTRAINT(约束):

域约束(数据类型的约束);

外键约束(引用完整性约束);

主键约束(某字段能唯一标识此字段所属的实体,并且不允许为空,一张表只能有一个主键);

唯一性约束:每一行的某字段都不允许出现相同值,可以为空,一张表可以有多个;

检查性约束

17、             文件:表示层(对用户)、逻辑层(文件系统—存储引擎)、物理层(数据块);

关系型数据:表示层(表)、逻辑层(存储引擎)、物理层(数据文件)。

18、             数据查询和存储:查询管理器(DML解释器、DDL解释器、查询执行引擎);存储管理器(权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器)。

19、             MYSQL单进程多线程(守护线程、应用线程);线程重用(Thread reuse);

20、             MYSQL优势:speed/relibility(稳定性)/scalability(伸缩性)/ease of use/portability and standards compliance/multi user support/internationalization/wide  application support(C/C++/Java/perl/php/python/ruby/JDBC/ODBC/.NET)/open source

21、             MYSQL32bit系统上,最多可用2.7G内存;在64bit系统上,对smp(对称多处理器支持性较差);一个单独语句仅在一个CPU上运行。

22、             投影(只输出指定属性,例:>SELECT  col1,col2  FROM stl_name;);

选择(只输出符合条件的行,例:>SELECT  col1,col2  FROM stl_name  WHERE  col3=’value’;);

自然连接:具有相同名字的所有属性上取值相同的行,例:tbl1_name.col_name=tbl2_name.col_name

笛卡尔积:(a+b*(c+d)=ac+bd+bc+bd

并:集合运算。

23、             SQL语言的组成部分:DDLDMLDCL、完整性定义语言(DDL的一部分)、视图定义、事务控制、嵌入式SQL和动态SQL

24、             使用程序设计语言如何跟RDBMS交互:嵌入式SQL(与动态SQL类似,但其语句必须在程序编译时完全确定下来);动态SQL(程序设计语言使用函数(mysql_connect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立的连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理。)。

25、             MYSQL插件式存储引擎:MyISAM(不支持事务,表锁,但性能好适用于数据仓库,修改少、查询多的场景);InnoDB(支持事务,行锁,工作类似ORACLE,适用于在线事务处理)。

26、             文件中记录组织:堆文件组织(一条记录可放在文件中任何地方);顺序文件组织(根据搜索码(索引字段)排序);散列文件组织(hash)。

27、             Data Dictionary(关系的元数据):表名、字段名、字段类型和长度、视图、约束、用户名字、权限密码。

28、             Alpha(内测版)——》Beta(公测版)——》RelaseCandidate(发行候选)——》GA(General Availability)

29、             MySQL启动时查找中心配置文件my.cnf优先级顺序:/etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf-->--default-extra-file=/path/to/file-->~/my.cnf

30、             表管理器(负责创建、读取、修改表结构定义文件,维护表描述符调整缓存,管理表锁);

表定义模块:表的创建、删除、重命名、移除、更新、插入;

表维护模块:检查、修改、备份、恢复、优化(碎片整理)及解析。

31、字符集:汉字与编码的对应关系,例:GBK/GB2312/UTF-8/GB18030

32#ls  /mydata/data/mysql (查看mysql数据目录下的文件)

若存储引擎是MyISAM,创建的表有三个文件(.frm表结构,.MYD表数据,.MYI表索引);

若存储引擎是InnoDB,创建的表有二个文件(.frm表结构,.ibd表空间(包括表结构和表索引)),另db.opt(存放默认字符集及排序规则)

33InnoDB存储引擎,所有表共享一个表空间文件,建议改为每表一个独立的表空间文件,方法:改配置文件my.cnf[mysqld]区域添加一行innodb_file_per_table  =  1,重启服务后登录mysql,查看>SHOW  GLOBAL VARIABLES  LIKE  ‘innodb_file_per_table’;

二、编译安装mysql5.5.23redhat6.4)步骤:

#hwclock -s  set the system timefrom the hardware clock,-wset the hardware clock to the current system time

#mkdir -pv /mydata/data  (最好将此目录挂载至独立的LVM分区磁盘)

#groupadd -r  mysql

#useradd -r  -g  mysql -d  /mydata/data  mysql

#id mysql

#chown -R  mysql:mysql  /mydata/data

#yum –y install make autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel perl kernel-headers compat* cpp glibc libgomp libstd c++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libpng* ncruses* libtool* libxml2-devel bison libaio-devel  (为在安装过程中尽量少出现报错,最好先安装一些必需的编译工具和库文件,方便以后编译安装phpnginx等)

#tar zxvf cmake-3.3.0.tar.gz   (跨平台编译器,其中cmake .(相当于./configure,cmake . –LH(相当于./configure–help)

#cd cmake-3.3.0

#./bootstrap

#make && make install

#which cmake  (查看cmake二进制文件路径)

#tar zxvf mysql-5.5.23.tar.gz

#cd /mysql-5.5.23

#cmake .  –LH | less  (查看可编译选项)

#cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/mydata/data  -DSYSCONFDIR=/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_READLINE=1  -DWITH_SSL=system  -DWITH_ZLIB=system  -DWITH_LIBWRAP=0  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  (确保此处所有选项对应软件及组件都要安装,例:SSL对应安装openssl

#make && make install

#chown -R  :mysql  /usr/local/mysql  (将此目录改组名为mysql

#cd /usr/local/mysql

#scripts/mysql_install_db  --user=mysql --datadir=/mydata/data  (初始化)

#cp support-files/my-large.cnf /etc/my.cnf  (复制模板配置文件)

#cp support-files/mysql.server /etc/rc.d/init.d/mysqld

#chkconfig --add  mysqld

#chkconfig --list  mysqld

#service mysqld  start

#vim  /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

#source /etc/profile.d/mysql.sh

#echo $PATH

#vim /etc/my.cnf

[mysqld]添加一行

datadir = /mydata/data

#mysql (使用此方法直接登陆)

>USE mysql;

>SELECT User,Host,Password  FROM  user;

>UPDATE mysql.user  SET  PASSWORD=PASSWORD(‘redhat’)  WHERE User=’root’;  (将有关本地所有root帐户全部改密码为redhat,注意:root(127.0.0.1)root(localhost)不是同一帐户,虽然改密码结果都是作用于本地root。)

>FLUSH PRIVILEGES;  (将配置加载至内存中,直接生效)

>DROP USER  ‘’@localhost;

>DROP USER  ‘’@localhost.localdomain;  (为安全,删除两个匿名帐户)

>SHOW ENGINES;  (查看支持的存储引擎)

#mysql -uroot  -p -h  localhost  (为使以后方便在本地使用#mysql直接登录可在家目录下新建~/.my.cnf(此文件是隐藏文件),添加如下语句:

[client]

user =  root

password =  redhat

host =  localhost

 

 本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1682167,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
Oracle 关系型数据库 MySQL
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
73 34
|
3月前
|
存储 Linux API
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
|
28天前
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权与执行过程,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
27天前
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
|
2月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
55 18
|
2月前
|
存储 Linux 调度
【Linux】进程概念和进程状态
本文详细介绍了Linux系统中进程的核心概念与管理机制。从进程的定义出发,阐述了其作为操作系统资源管理的基本单位的重要性,并深入解析了task_struct结构体的内容及其在进程管理中的作用。同时,文章讲解了进程的基本操作(如获取PID、查看进程信息等)、父进程与子进程的关系(重点分析fork函数)、以及进程的三种主要状态(运行、阻塞、挂起)。此外,还探讨了Linux特有的进程状态表示和孤儿进程的处理方式。通过学习这些内容,读者可以更好地理解Linux进程的运行原理并优化系统性能。
62 4
|
4月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
157 6
|
5月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
592 3
|
7月前
|
运维 监控 网络协议
|
6月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。