您的位置:首页 > 数据库 > SQL

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

2015-08-06 10:46 579 查看
Linux运维 第四阶段 (一) MySQL基本概念及编译安装步骤一、相关基础概念:
1、 文件存储:数据冗余和不一致性;数据访问困难;数据孤立;完整性问题;原子性问题;并发访问异常;安全性。
2、 DBMS(DataBase Management System)功能:数据管理的独立性;有效地完成数据存取;数据完整性、安全性;数据集中管理;并发存储、数据恢复;减少应用程序开发周期。
3、 RDBMS(Relational DBMS):数据库和表的创建、删除、修改;索引的创建、删除;用户和权限的管理;数据的增删改查等。
4、 DML(Data Manapulate language):INSERT INTO、UPDATE、DELETE、REPLACE、SELECT;
DDL(Definition):CREATE、ALTER、DROP;DCL(Control):GRANT、REVOKE。注:命令不区分大小写,但最好养成良好的习惯,命令用大写,方便以后查看复杂语句等等。5、 程序:指令+数据。二分法查找14次可找到数据;BTREE索引4次可找到数据。
6、 数据的组织结构:层次型(有上下级关系,耦合度紧密);网状结构;关系型结构(表)。
7、 马哥的蒸馒头理论:系统提供给我们的是种子;库提供给我们的是面;通过SHELL我们就可以有馒头了。
8、 程序员或开发人员通过驱动(翻译软件,编程接口比API更简单易用)来完成查询操作;一般用户通过终端登录命令行操作;线程池:大量用户流进、控制流量。
9、 去IOE化(IBM、ORACLE、EMC)。
10、 MYSQL(MY StructureQuery Language)软件包格式:二进制包(软件包管理器特有的RPM、EXE、MSI);通用二进制格式(不用安装,解压后简单配置即可使用);源码包(编译安装)。
11、 MYSQL:C/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、 MYSQL在32bit系统上,最多可用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语言的组成部分:DDL、DML、DCL、完整性定义语言(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(存放默认字符集及排序规则)
33、InnoDB存储引擎,所有表共享一个表空间文件,建议改为每表一个独立的表空间文件,方法:改配置文件my.cnf在[mysqld]区域添加一行innodb_file_per_table = 1,重启服务后登录mysql,查看>SHOW GLOBAL VARIABLES LIKE ‘innodb_file_per_table’;
二、编译安装mysql5.5.23(redhat6.4)步骤:
#hwclock -s (set the system timefrom the hardware clock,另-w(set 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 curlcurl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-develperl kernel-headers compat* cpp glibc libgomp libstdc++-develkeyutils-libs-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetypefreetype-devel freetype* fontconfig fontconfig-devel libpng* ncruses* libtool*libxml2-devel bison libaio-devel (为在安装过程中尽量少出现报错,最好先安装一些必需的编译工具和库文件,方便以后编译安装php、nginx等)
#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


本篇是学习《马哥网络视频》做的笔记。
本文出自 “Linux运维重难点学习笔记” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: