MySQL数据库介绍

  • MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

  • MySQL的历史最早可以追溯到1979年,那时Oracle也才刚刚开始,微软的SQL Server影子都没有。

  • 在2008年1月16号 MySQL被Sun公司收购。

  • 2009年,SUN又被Oracle收购

  • 体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得许多企业选择了MySQL作为数据库

MySQL官网介绍

  • 主页https://www.oracle.com/mysql/index.html

  • 下载主页面https://www.mysql.com/downloads/

  • 社区资源下载页面https://dev.mysql.com/downloads/

  • MySQL社区版下载页面https://dev.mysql.com/downloads/mysql/


MySQL相关产品介绍

  • Oracle MySQL Cloud Service (commercial)商业付费软件,基于MySQL企业版和Oracle云服务提供企业级

  • MySQL Enterprise Edition(commercial)商业付费软件,除了提供MySQL数据库服务之外,又包含了connector(程序连接接口), partition(表分区),企业级的monitor(监控),HA(高可用), backup(备份),Scalability(扩展)等服务。
  • MySQL Cluster CGE(commercial)商业付费软件,基于MySQL Cluster和企业版拥有的各项功能提供企业级的高并发 、高吞吐的数据库服务

  • MySQL Community Edition 免费社区软件,提供基础的数据库服务和其他衍生服务

MySQL 社区软件相关产品介绍

  • MySQL Community Server 最流行的开源数据库管理软件,当前最新版本是5.7

  • MySQL Cluster基于MySQL数据库而实现的集群服务,自身能提供高并发高负载等特性
  • MySQL Fabric MySQL官方提供的关于MySQL数据库高可用和数据分片的解决方案

  • MySQL Connectors为应用程序提供JDBC/ODBC等访问MySQL数据库的接口服务

MySQL Community Server各版本主要区别

• MySQL4.0版本: 增加了子查询的支持,字符集增加UTF-8, GROUP BY语句增加了ROLLUP, mysql.user表采用了更好的加密算法, InnoDB开始支持单独的表空间

• MySQL5.0版本: 增加了Stored procedures、 Views、 Cursors、 Triggers、XA transactions的支持,增加了INFORATION_SCHEMA系统数据库

• MySQL5.5版本: 默认存储引擎更改为InnoDB, 提高性能和可扩展性,增加半同步复制

• MySQL5.6版本:提高InnoDB性能,支持延迟复制

• MySQL5.7版本:提升数据库性能和存储引擎,更健壮的复制功能,增加sys系统库存放数据库管理信息

MySQL安装——准备(1)

• 检查操作系统和MySQL版本的适配度

MySQL安装——准备(2)

• 选择安装的MySQL版本

• 首先判断是否要和公司其他已经安装好的MySQL保持版本一致

• 如果没有上述要求,则一般会安装最新版本(目前是5.7)

• 如果不是实验新功能性质,则不要选择development release,而要安装General Availability (GA) release(代表稳定版本,可在生产系统使用)

• 选择安装MySQL的方式

• 二进制安装包的方式(RPM,ZIP,Tar等)

• 源码方式(source code)

• 一般会选择二进制安装方式

• 如果有特殊需求,比如修改一部分源码或修改MySQL深层次的配置,则会选择源码方式

• 我们以二进制Tar包安装方式为例

MySQL Linux 安装

• 1.下载正确的tar包

• 2.上传tar包到服务器并解压tar包到/usr/local/目录

• cd /usr/local/

• tar -xvf mysql-5.7.17-linux-glibc2.5-x86_64.tar

• tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

• mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql

• 3.创建运行MySQL的用户和组(名字可以任意)

  • Shell> groupadd mysql

  • Shell> useradd mysql -g mysql

• 4.切换到mysql目录

  • Shell > mkdir data

• 5.修改解压包的权限

  • Shell> chown –R mysql .

  • Shell> chgrp –R mysql .

• 6.安装MySQL

  • Shell> bin/mysqld --initialize --user=mysql --datadir /usr/local/mysql/data ##初始化数据目录

  • shell> cp -f support-files/my-default.cnf /etc/my.cnf ##将默认配置文件复制到指定目录

  • shell> bin/mysqld_safe --datadir=/usr/local/mysql/data --user=mysql & ##启动MySQL服务

  • shell> cp support-files/mysql.server /etc/init.d/mysql.server ##将MySQL加入到服务自启动

  • Shell> /etc/init.d/mysql.server start ##通过服务启动MySQL

• 启动过程中如果碰到如下错误

• [root@localhost mysql]# bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data

  • bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

• 则需要安装包yum install -y libaio

• 不使用推荐安装路径的方法

• [root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data &

• [root@localhost mysql]# bin/mysqld_safe --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql &

• 初始化过程中获得root的初始密码

• 启动完成后通过ps –ef查看MySQL进程

• 本机登录MySQL数据库

• 修改root的初始密码

• mysql> set password=password('mysql');

• Query OK, 0 rows affected, 1 warning (0.01 sec)

• mysql> flush privileges;

• Query OK, 0 rows affected (0.00 sec)

MySQL常用客户端工具--Aqua

• Aqua data studio是一款支持连接多种数据库类型的客户端工具

#类似的工具还有Navicat、SQLyog等都可以实现远程工具连接数据库。

MySQL基本文件结构

• Data目录为初始化的数据文件存放路径

• Data目录里为每一个数据库创建了一个文件夹

• Ibdata1和ib_logfile0/1为三个专为innodb存放数据和日志的共享文件

MySQL启动相关参数

• basedir = /usr/local/mysql
• 代表MySQL安装路径

• datadir = /usr/local/mysql/data
• 代表MySQL的数据文件路径

• port = 3306
• 指定MySQL的侦听端口

• log-error=/usr/local/mysql/data/M00006.err
• 记录MySQL启动日志和运行错误日志

• bind-address(默认是*)
• *代表接受所有来自IPV4、 IPV6主机网卡的TCP/IP连接

• 0.0.0.0代表接受所有来自IPV4主机网卡的TCP/IP的连接
• 指定的IP如127.0.0.1,代表只接受此地址请求的TCP/IP连接

• character-set-server(默认是latin1)
• 指定MySQL的字符集

• collation-server(默认是latin1_swedish_ci)
• 指定MySQL的排序规则

• default-storage-engine(默认是InnoDB)
• 指定MySQL的默认存储引擎

• default-time-zone
• 指定默认时区,如果没有指定则和系统默认时区一致

• open-files-limit(默认5000)
• 指定Mysqld运行过程中可以打开的文件数,避免出现” Too many open files”报错

• pid-file=/usr/local/mysql/data/M00006.pid
• 指定Mysqld进程对应的程序ID文件,默认是在数据文件目录里

• Skip-grant-tables
• 指定避开MySQL内部的权限表启动服务

• Tmpdir
• 指定临时表文件的存放路径

• 修改MySQL默认端口后重启
  • 修改/etc/my.cnf中的port参数为3307
  • /etc/init.d/mysql.server restart重启服务

• 修改MySQL默认字符集后重启

  • 修改/etc/my.cnf文件
    • character-set-server = utf8
    • collation-server = utf8_unicode_ci

• /etc/init.d/mysql.server restart重启服务

• 查看重启后的MySQL字符集

  • mysql> show variables like 'character_set_server%';

• +----------------------+-------+
• | Variable_name | Value |
• +----------------------+-------+
• | character_set_server | utf8 |
• +----------------------+-------+

• mysql> show variables like 'collation_server%';
• +------------------+-----------------+
• | Variable_name | Value |
• +------------------+-----------------+
• | collation_server | utf8_unicode_ci |
• +------------------+-----------------+

• 修改MySQL数据文件目录后重启
  • 关闭数据库

    • /etc/init.d/mysql.server stop

• 数据目录data转移到/data/目录下

    • mv data /data/

• 修改my.cnf中的datadir参数

    • datadir = /data/data

• /etc/init.d/mysql.server start服务

MySQL-基础-2的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. XIN队算法

    XIN队算法 注:名称由莫队算法改编而来 从luogu搬过来了... \(newly\;upd:2021.7.8\) \(newly\;upd:2021.6.6\) OI至高算法,只要XIN队算法打满 ...

  2. [考试总结]noip模拟6

    我好菜啊 真上次第二这次倒二... 因为昨天还没有改完所有的题所以就留到今天来写博客了 这次考试总结的教训有很多吧,反正处处体现XIN某人的laji,自己考试的是后本以为一共四个题目,三个题目都没有看 ...

  3. 微信机器人项目开发--python

    1.外网穿透工具下载与注册[http://ngrok.ciqiuwl.cn/] 2.公众号审请 3.代码编写 糗事百科接口 # _*_ coding:utf-8 _*_ import requests ...

  4. bs4爬取笔趣阁小说

    参考链接:https://www.cnblogs.com/wt714/p/11963497.html 模块:requests,bs4,queue,sys,time 步骤:给出URL--> 访问U ...

  5. HotSpot 对象

    概述 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用, 并且检查这个符号引用代表的类是否已被加载.解析和初始化过.如果没有,那必须先执行相 ...

  6. Java Fork/Join

    Fork/Join框架 Fork/Join 以递归方式将可以并行的任务拆分成更小的任务,然后将每个子任务的结果合并起来生成整体结果. 这个过程其实就是分治算法的并行版本,图解如下: 如何使用 我们要使 ...

  7. 三年Android开发,竟只会增删改查,被面试官一顿怼!

    最近看到某公司面试官发的这样一个帖子: 我面试了一个有三年Android开发经验的小伙子,也是我有史以来给别人面试时间最短的一次,不到十分钟就结束了,原因很简单,底子太差只会curd,很多技术性的问题 ...

  8. shell趣味实验——图形

    目录 一.直线 二.矩形 2.1.镂空矩形 三.直角三角形 3.1.倒直角三角形 3.2.反直角三角形 3.3.等腰三角形 3.4.倒等腰三角形 3.5.菱形 四.平行四边形 五.梯形 5.1.等腰梯 ...

  9. Golang语言系列-11-goroutine并发

    goroutine 并发 概念 package main import ( "fmt" "time" ) /* [Go语言中的并发编程 goroutine] [ ...

  10. MySQL-01-简介以及安装

    Mysql简介 什么是数据 数据:文字.图片.视频... 人类认知的数据表现方式 计算机:二进制.16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式 哪些数据是适合存储到数据 ...