第二章:MySQL介绍与安装

第二章:MySQL介绍与安装

为什么选择MySQL

  1. mysql性能卓越,服务稳定,很少出现异常宕机
  2. mysql开源免费,无版权制约,自主性及使用成本低
  3. 产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php
  4. 技术积累,庞大的活跃的社区,
  5. 软件体积小,安装简单,易于维护

MySQL数据库分类与版本升级

MySQL官网http://www.mysql.com/,MySQL版本采用双授权政策,和大多数开源产品路线一样,分为社区版商业版,并且这两个版本又分别分成四个版本依次发布,Alpha版Beta版RC版GA版

GA版即为正式版

1:社区版和企业版的区别

  1. 首先价格上,社区版完全免费,企业版需要高额的费用
  2. 技术上,企业版具有MySQL企业级服务器、MySQL企业级系统监控工具。企业版经过严格的测试认证,相对企业版,社区版的开发测试环境没有那么严格
  3. 服务方面,社区版mysql官方不提供任何技术支持,使用过程出现任何意外不负任何责任,企业版与之相反
  4. 商业版不支持GPL协议

2:MySQL产品路线

三条产品线 
1)5.0.XX到5.1.XX产品系列

这条产品线继续完善改进用户体验和性能,同时增加新功能,是mysql早期产品的延续,如rhel6自带的mysql

2)5.4.XX开始到5.7.XX产品系列

mysql社区和第三方公司percona整合的,吸收新的算法和存储引擎,现在已经到了5.6.26

3)6.0.XX到7.X.XX产品系列

主要是为了更好的推广MySQL Cluster版本,提供Cluster版本的性能和稳定性,这个版本比较少公司用,原因是出来太晚了

MySQL架构和结构分析

官方架构图

每个虚线框为一层,总共三层。

第一层,服务层(为客户端服务):为请求做连接处理,授权认证,安全等。 
第二层,核心层:查询解析,分析,优化,缓存,提供内建函数;存储过程,触发器,视图。 
第三层,存储引擎层,不光做存储和提取数据,而且针对特殊数据引擎还要做事务处理。

内部组件结构图

MySQL安装

生产环境怎么选择MySQL版本

1:选择稳定版 选择社区的GA版 
2:产品线,主要是5.1和5.5 ,多数5.5 
3:选择MySQL GA版发布6个月以上的版本 
4:最好向后较长时间没有更新发布的版本 
5:与开发人员使用版本的兼容 
6:测试环境跑3-6个月 
7:到生产环境非核心业务跑几个月

MySQL安装方法

1:使用二进制方式安装,rpm/yum 
2:源码编译,产品线路1用普通编译安装,线路2用cmake编译安装5.5/6/7

源码编译安装mysql5.5.32

如果是mysql5.1系列的直接使用编译安装,不用cmake 
1)安装cmake编译工具

[root@localhost ~]# yum install cmake -y

2)下载MySQL

[root@localhost ~]# wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.53.tar.gz

3)安装依赖

[root@localhost ~]# yum install ncurses-devel –y

4)添加用户

[root@localhost ~]# useradd -u 8001 -s /sbin/nologin mysql

5)编译安装

[[email protected] ~]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql

参数说明:

-DCMAKE_INSTALL_PREFIX   数据库安装目录-DMYSQL_UNIX_ADDR         sock文件路径-DDEFAULT_CHARSET       默认字符集-DDEFAULT_COLLATION     默认字符校对-DWITH_EXTRA_CHARSETS   扩展字符支持  默认all-DWITH_storage_STORAGE_ENGINE   存储引擎的支持,默认支持MyISAM,MERGE,MEMORY,CVS存储引擎-DENABLED_LOCAL_INFILE=1   启用加载本地数据-DMYSQL_DATADIR         数据存放目录-DMYSQL_USER                mysql运行用户
[root@localhost ~]# make -j 4 && make install

6)授权用户

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/[root@localhost ~]# chmod 1777 /tmp

7)创建配置文件

[[email protected] ~]# cp support-files/my-large.cnf /etc/my.cnf

8)设置环境变量

[root@localhost ~]# echo ‘export PATH=/usr/local/mysql/bin:$PATH‘ >>/etc/profile[root@localhost ~]# source !$

10)初始化数据库

[root@localhost ~]# chmod +x scripts/mysql_install_db[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

看到两个ok就成功 
11)初始化安全配置

[root@localhost ~]# mysql_secure_installation  安全初始化配置

12)排错 
出现这种错误

Enter current password for root (enter for none):ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

干掉mysql进程

[root@localhost ~]# pkill mysqld[root@localhost ~]# rm -rf /usr/local/mysql/data/*

重新初始化 
13)MySQL安全优化小配置 
用户安全

mysql> select user,host from mysql.user;mysql> delete from mysql.user where user=‘‘;mysql> delete from mysql.user where host=‘server01.cn‘;mysql> delete from mysql.user where host=‘::1‘;mysql> select user,host from mysql.user;+------+-----------+| user | host      |+------+-----------+| root | 127.0.0.1 || root | localhost |

或者把用户都删了,添加一个额外的管理员

mysql> delete from mysql.user;mysql> grant all privileges on *.* to [email protected]‘localhost‘ identified by ‘123456‘ with grant option;mysql> flush privileges;mysql> select user,host from mysql.user;+--------+-----------+| user   | host      |+--------+-----------+| system | localhost |+--------+-----------+1 row in set (0.00 sec)mysql> drop database test;

14)mysql_secure_installation

mysql -uroot –p  登录mysql

MySQL工作模式及常用命令

交互式模式:mysql>

# 交互式模式下的客户端命令mysql> help # 获取命令帮助mysql> \? # 同上mysql> \c # 取消命令执行mysql> \g # 发送命令至服务器端mysql> \G # 发送命令至服务器端,垂直显示结果mysql> \q # 退出mysql> \! # 执行系统shell命令mysql> \s # 显示服务器端状态信息mysql> \. /path/to/mysql_script.sql # 批量执行sqlmysql> \u # 切换数据库

交互式模式下的服务器端命令(需要命令提示符,默认为分号)

mysql> help contents 能够获取帮助的分类信息mysql> help keyword 获取关键字的帮助信息,如help select

脚本模式:mysql < /path/to/mysql_script.sql 
注:常用于主从复制批量导入数据时

连接MySQL

连接类型

本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1(localhost)地址或lo接口进行通信基于sock文件通信:如mysql -hlocalhost -uroot -p --socket=/tmp/mysql.sock 
远程通信:客户端与服务器端位于不同的主机,或在同一主机使用非回环地址通信基于 TCP socket通信

mysql客户端选项

实例

-u,--user # 指定连接用户-h,--host # 指定连接主机-p,--password # 指定连接密码--protocol={tcp|socket|memory|pipe} # 指定连接协议-P,--port # 指定连接端口,默认监听端口:tcp/3306--socket # 指定本地连接的sock文件--compress # 数据传输采用压缩格式-D,--database # 指定连接后默认使用的数据库-H,--html # 指定产生html输出-X,--xml # 指定产生xml输出--safe-updates # 拒绝使用无where子句的update或delete命令# 使用实例:mysql -hlocalhost -uroot -p

mysql命令提示符

mysql> # 等待输入命令-> # 等待继续输入‘> # 等待结束单引号“> # 等待结束双引号`> # 等待结束反引号/*> # 注释,不执行,需以*/结束注释

mysql的快捷键

ctrl+w:# 删除光标之前的单词ctrl+u:# 删除光标之前至命令行首的所有内容ctrl+y:# 粘贴所有ctrl+w或ctrl+u删除的内容ctrl+a:# 移动光标至行首ctrl+e:# 移动光标至行尾

MySQL管理工具mysqladmin

# 使用格式:mysqladmin [options] command [arg] [,command [arg]] …# 常用的command包括:create DB_Name:# 创建数据库drop DB_Name:# 删除数据库debug:# 打开调试日志并记录于error log中status:# 显示简要状态信息--sleep #:设置间隔时长--count #:设置显示的批次extended-status:# 显示扩展信息,输出mysqld的各状态变量及赋值,相当于执行“mysql> show global status”variables:# 输出mysqld的各服务器变量flush-hosts:# 清空主机相关的缓存:DNS解析缓存;此前因为连接错误次数过多而被拒绝访问mysqld的主机列表flush-logs:# 日志滚动,只能滚动二进制日志和中继日志refresh:# 相当于同时使用flush-hosts和flush-logsflush-privileges:# 通知mysqld重读授权表reload:# 功能同“flush-privileges”flush-status:# 重置状态变量的值flush-tables:# 关闭当前打开的表文件句柄flush-threads:# 清空线程缓存kill:# 杀死指定的线程,需指定线程ID;可以一次杀死多个线程,以逗号分隔,但不能有多余空格password:# 修改当前用户的密码ping:# 模拟ping操作,检测mysqld是否在线processlist:# 显示mysqld线程列表shutdown:# 关闭mysqld进程start-slave,stop-slave:# 启动/关闭从服务器线程

MySQL数据文件解析

MyISAM表:每表有3个文件,都位于数据库目录中

tb_name.frm:# 表结构定义文件tb_name.MYD:# 数据文件tb_name.MYI:# 索引文件

InnoDB表:有2种存储方式

默认方式:每表有1个独立文件和一个多表共享的文件

tb_name.frm:# 表结构定义文件,位于数据库目录中ibdata#:# 共享的表空间文件,默认位于数据目录(datadir指向的目录)中,如ibdata1

自定义方式:独立的表空间

tb_name.frm:#表结构定义文件tb_name.ibd:# 独有的表空间文件# 在MySQL初始化中打开独立表空间功能的方法:vi /etc/my.cnf (在[mysqld]段下添加)innodb_file_per_table = ON# 注:表空间:table space,是由InnoDB管理的特有格式的数据文件,内部可同时存储数据和索引
时间: 2024-11-03 05:29:55

第二章:MySQL介绍与安装的相关文章

第一章&#183;MySQL介绍及安装

一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展史 05 MySQL正在推动世界 06 MySQL简介及产品线 06 MySQL 安装 一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加

第一章 Mysql简介及安装和配置

第一章 Mysql简介及安装和配置 ·    第一节:Mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. 使用 C和 C++编写的. 集群(Cluster),适合大规模应用 ·   第二节:Mysql安装及配置 MySql安装注意一次行安装成功,不然要处理注册表. 安装选择编码格式为GBK或UTF-8. 安装MySql图形界面(Navica或MySQlog). p.MsoNormal,li.MsoNormal,div.Mso

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

《AngularJS深度剖析与最佳实践》笔记: 第二章 概念介绍

第二章 概念介绍 2.1 什么是UI? 用户界面包括内容(静态信息+动态信息), 外观, 交互. 在前端技术栈中分别由HTML, CSS和JS负责. 进一步抽象, 分别对应于MVC三个主要部分: Model, View和Controller 对应到AngularJS中,  内容: 静态内容---模板 动态内容---scope 交互---Controller 外观 CSS----样式 filter----格式 2.2. 模块(module) 模块: 把相关的一组编程元素(如类, 函数, 变量等)组

mysql介绍及安装

一.MySQL介绍 1.标志 MySQL的海豚标志的名字叫"sakila",它是由MySQL AB的创始人从用户在"海豚命名"的竞赛中建议的大量的名字表中选出的.获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供.根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字. 注:sakila同时也是MySQL自带的一个数据库样例(sakila

MySQL介绍,下载,安装,配置

MySQL用了很多年了,今天写个总结. 一.介绍 MySQL是开源软件,后来归Oracle所有.开源便于软件的完善改进.但开源不等于滥用,也不等于完全免费.MySQL有商业版,商业用途是付费的.也有免费版(社区版),方便软件开发用.一般程序员下载社区免费版. 二.下载 去官网下载安装包.下载安装版 社区版的下载项有很多,有MySQL服务端MySQL Community Server(下载这个),有shell工具,还有Linux上用的yum安装包和suse的安装包.我看到有一个MySQL on W

MySQL(介绍,安装,密码操作)

一.数据库介绍1.数据库相关概念 a.支持并发     b.锁的问题     c.对客户端请求进行认证     d.存取效率(降低IO次数)    数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)    数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件)    库(文件夹)=====>数据库    表(文件)    记录:抽取一个事物所有典型的特征/数据        egon,18,180,male,True 数据        name='ego

Linux就该这么学,学习笔记第一章(介绍和安装)

目的:1.学好linux,随着大数据,云等应用,开源软件将占领市场,这些应用都是基于linux的. 2.通过RHCE认证考试 原因:1.人的自律很困难,必须付出代价(交钱上课完成作业)等方式强迫自己学习.(自己也喜欢学习linux) 2.本人年龄偏大40岁,但认为学习不可放松,活到老学到老. 正题: 1.我什么要学习linux 基于服务器的应用,性能高,占用资源少(省去图形界面资源开销),开源支持漏洞及病毒少,费用免费或低廉. 2.vmware workstation 虚拟机安装学习. 安装关键

MySql介绍与安装

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件. MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL 语言是用于访问