概述

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL主流分支

MySQL主流分支有Oracle官方版本的MySQL、Percona Server、MariaDB。

Oracle官方版本

官网地址:https://www.mysql.com/

分为以下版本

  • MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
  • MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
  • MySQL Cluster CGE 高级集群版,需付费。
  • MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。

MySQL Community Server 是开源免费的,这也是我们通常用的MySQL的版本。

主要为社区版(Community Servert)和商业版(ENterprise Edition),这两个版本又分为4个版本发布,分别是Alpha(开发公司内部测试,稳定性差)、Beta(BUG较少,提供用户测试)、RC(正式版发布之前的版本)和GA(正式版,生产环境基本用这个版本)。

商业版比社区版更稳定,且不遵守GPL协议,可以享受7*24小时技术支持和打补丁等服务。

产品线 说明
5.0.xx到5.1.xx 早期产品,只修复漏洞,不增加新功能。5.1及以前默认引擎是MyISAM。
5.4.xx到5.7.xx 主流版本,常用5.5和5.6。5.5.5及以后默认引擎是Innodb。
6.0.xx到7.1.xx 集群版本。
8.0.xx 新发布版本。

MySQL命名规则,例如5.5.40:

  • 第1个数字为主版本号;
  • 第2个数字为发行级别;
  • 第3个数字为该发行系列的版本号。

Percona Server

官网地址:https://www.percona.com/software/mysql-database/percona-server

Percona Server是MySQL重要的分支之一,它基于InnoDB存储引擎的基础上,提升了性能和易管理性。

MariaDB

官网地址:https://mariadb.org/

MariaDB是由MySQL创始人Monty创建的,是一款高度兼容的MySQL产品,主要由开源社区维护,采用GPL授权许可。

安装

环境

# 系统为CentOS7.6版本。
[root@test ~]#cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

关闭SElinux和防火墙

systemctl stop firewalld
systemctl disable firewalld
sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0

修改最大打开进程数和文件句柄数

# 查看当前服务器最大打开进程数和文件句柄数
[root@test ~]#ulimit -a|egrep 'open files|max user'
open files (-n) 1024
max user processes (-u) 7191

如果open files设置不合理,而当前服务器的连接过多或者表过多时,就有可能会出现打不开表或者访问不了表的现象,默认情况下,最大句柄数为1024个,表示单进程最多可以访问1024个文件句柄。如果超过默认值,则会出现文件句柄超限的错误“too many open files”。

max user processes参数的用途是,有时候我们可能会跑多实例,但是发现创建不了新的连接,报出“resource temporarily unavailable”的错误,表示没有足够的资源。

# 修改/etc/systemd/system.conf文件中的相关参数,与CentOS6修改的方式略有不同
sed -i '/^#DefaultLimitNOFILE=/aDefaultLimitNOFILE=65535' /etc/systemd/system.conf
sed -i '/^#DefaultLimitNPROC=/aDefaultLimitNPROC=65535' /etc/systemd/system.conf
sed -i 's#nproc 4096#nproc 65535#' /etc/security/limits.d/20-nproc.conf
# 需要重启才能生效
reboot

安装5.6版本

本次5.6版本使用二进制方式安装,当然也可以yum安装。

# 创建用户
useradd -s /sbin/nologin -M mysql # basedir放在/usr/local目录下
cd /usr/local # 解压二进制包
tar zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz # 做个软链接,方便日后升级
ln -s mysql-5.6.40-linux-glibc2.12-x86_64 mysql
chown -R mysql.mysql mysql # 创建数据目录
mkdir -p /data/mysql
chown mysql.mysql -R /data/mysql

修改my.cnf配置

在启动MySQL实例的过程中,会按照/etc/my.cnf-->/etc/mysql/my.cnf-->/usr/local/mysql/my.cnf-->~/.my.cnf这样的一个优先级别的顺序去读取参数文件。如果想指定默认的参数文件,需要配合--defaults-file参数。

通用配置参考:

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql/
datadir = /data/mysql/
default-storage-engine=INNODB
max_connections=200

初始化

cd /usr/local/mysql/scripts/
# 开始初始化,若出现两个OK,则说明初始化成功
./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql # 若出现以下错误:
FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db:
Data::Dumper
# 解决方法
yum -y install autoconf

启动

# 复制启动脚本到/etc/rc.d/init.d目录下
cp ../support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
# 加入系统服务
chkconfig --add mysqld
# 将mysql相关命令链接到/bin目录下
ln -s /usr/local/mysql/bin/* /bin/
# 启动mysql
service mysqld start

安全加固

# 删除test库和无用账号
mysql -uroot -e"delete from mysql.user where host='::1';"
mysql -uroot -e"delete from mysql.user where user='';"
mysql -uroot -e"delete from mysql.user where host='';"
mysql -uroot -e"drop database test;"

创建密码

mysqladmin -uroot password

安装5.7版本

5.7版本使用yum安装。

添加源

创建文件/etc/yum.repos.d/mysql57.repo:

# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

更新缓存:

yum makecache fast

yum安装

yum -y install mysql mysql-server

启动

systemctl start mysqld

修改密码

注意:MySQL5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819

[root@test ~]# grep "temporary" /var/log/mysqld.log
2018-10-23T02:19:47.328365Z 1 [Note] A temporary password is generated for root@localhost: jr8phgkQT1-4
2018-10-23T02:19:50.816992Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
[root@test ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 324
Server version: 5.7.24 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec) mysql> set password for 'root'@'localhost'=password('DtDream01');
Query OK, 0 rows affected, 1 warning (0.00 sec)

配置

修改/etc/my.cnf:

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
#skip-grant-tables
character-set-server=utf8
port = 3306
socket = /tmp/mysql.sock
datadir = /data/mysql/
default-storage-engine=INNODB
max_connections=200
# 关闭密码过期功能
default_password_lifetime=0
# 关闭密码检测
validate_password=off
# 不区分大小写
lower_case_table_names=1

MySQL基础:安装的更多相关文章

  1. Mysql基础安装,初视篇

    mysql 跟所有的数据库软件一样分为  服务端和客户端: 下载:在官网里面选择 download 社区版本,mysql,社区版本 安装: win环境下: 第一步:解压文件出来 第二步:在bin文件下 ...

  2. mySQL的安装和基础使用及语法教程

    mySQL的安装和基础使用及语法指南 一.MySQL的安装.配置及卸载 1.安装 2.配置 3.mySQL5.1的完全卸载 4.MYSQL环境变量的配置 二.MySQL控制台doc窗口的操作命令 1. ...

  3. (3.2)mysql基础深入——mysql源码阅读工具安装与应用

    (3.2)mysql基础深入——mysql源码阅读工具安装与应用 关键字:mysql源码阅读工具 工具列举:一般多用[1][2][3]吧 [1]source insight [2]写字板/记事本 UE ...

  4. mysql二进制安装及基础操作

    mysql二进制安装及基础操作 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    mysql-5.6.36-linux-glibc2.5-x86_64 1.安装 采用二进 ...

  5. MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64、MySQL5.7)

    MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64.MySQL5.7) 安装包版本 1)     VMawre-workstation版本包 地址: https://m ...

  6. 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本

    作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...

  7. MySQL基础篇——安装、管理

    MySQL 安装 所有平台的 MySQL 下载地址为https://dev.mysql.com/downloads/mysql/ .挑选你需要的 MySQL Community Server 版本及对 ...

  8. MySQL 基础、安装、配置

    1. MySQL 基础 1.1 什么是数据库? 1.2 数据库的类型 1.3 关系型数据库的优点 1.4 MySQL 简介 1.5 MySQL 数据类型 1.6 Mysql 存储引擎 1.7 MySQ ...

  9. MySQL基础、MySQL安装和MariaDB安装

    MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...

  10. (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装

    一.数据库和SQL介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统等众多领域都 ...

随机推荐

  1. MySQL 索引分析

    MySQL复合唯一索引分析 关于复合唯一索引(unique key 或 unique index),网上搜索不少人说:"这种索引起到的关键作用是约束,查询时性能上没有得到提高或者查询时根本没 ...

  2. MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》

    数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. s ...

  3. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  4. 【bzoj1001】【狼抓兔子】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 12719 Solved: 3017 [Submit][ ...

  5. Linux下的五种I/O模型

    堵塞I/O(blocking I/O) 非堵塞I/O (nonblocking I/O) I/O复用(select 和poll) (I/O multiplexing) 信号驱动I/O (signal ...

  6. 利用GDAL实现影像的几何校正

    一.概述 遥感影像和地理坐标进行关联的方式一般有好几种,一种是直接给出了仿射变换系数,即6个參数,左上角地理坐标,纵横方向上的分辨率,以及旋转系数.在这样的情况下,求出某一像素点的地理坐标非常easy ...

  7. svn代码回滚命令【转】

    本文转载自:http://www.cnblogs.com/jndream/archive/2012/03/20/2407955.html 取消对代码的修改分为两种情况:   第一种情况:改动没有被提交 ...

  8. 0x56 状压DP

    gan这两题怎么差不多 #include<cstdio> #include<iostream> #include<cstring> #include<cstd ...

  9. Javascript技巧之不要用for in语句对数组进行遍历

    一,为什么不要用for in语句 jqModal这个jquery插件估计很多人都使用过,在jqModal源码内部,有一个函数为hs,其中有个嵌套循环如下, for(var i in {jqmShow: ...

  10. php获取前天的昨天的日期

    在PHP里得到前天和昨天的日期的代码前天去面试的时候也是这样,不过我当时记不起来了.就记得MYSQL里面的date_sub(now(),'interval 1 day');date('Y/m/d h: ...