MySQL基础:安装
概述
数据库(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基础:安装的更多相关文章
- Mysql基础安装,初视篇
mysql 跟所有的数据库软件一样分为 服务端和客户端: 下载:在官网里面选择 download 社区版本,mysql,社区版本 安装: win环境下: 第一步:解压文件出来 第二步:在bin文件下 ...
- mySQL的安装和基础使用及语法教程
mySQL的安装和基础使用及语法指南 一.MySQL的安装.配置及卸载 1.安装 2.配置 3.mySQL5.1的完全卸载 4.MYSQL环境变量的配置 二.MySQL控制台doc窗口的操作命令 1. ...
- (3.2)mysql基础深入——mysql源码阅读工具安装与应用
(3.2)mysql基础深入——mysql源码阅读工具安装与应用 关键字:mysql源码阅读工具 工具列举:一般多用[1][2][3]吧 [1]source insight [2]写字板/记事本 UE ...
- mysql二进制安装及基础操作
mysql二进制安装及基础操作 环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 mysql-5.6.36-linux-glibc2.5-x86_64 1.安装 采用二进 ...
- MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64、MySQL5.7)
MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64.MySQL5.7) 安装包版本 1) VMawre-workstation版本包 地址: https://m ...
- 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本
作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...
- MySQL基础篇——安装、管理
MySQL 安装 所有平台的 MySQL 下载地址为https://dev.mysql.com/downloads/mysql/ .挑选你需要的 MySQL Community Server 版本及对 ...
- MySQL 基础、安装、配置
1. MySQL 基础 1.1 什么是数据库? 1.2 数据库的类型 1.3 关系型数据库的优点 1.4 MySQL 简介 1.5 MySQL 数据类型 1.6 Mysql 存储引擎 1.7 MySQ ...
- MySQL基础、MySQL安装和MariaDB安装
MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...
- (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装
一.数据库和SQL介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统等众多领域都 ...
随机推荐
- C#--线程池与线程的种类
.NET CLR线程的种类 至少3个线程:主线程.调试线程.终结器线程 1.main thread 2.worker thread 3.finalizer thread 4.debugger help ...
- springboot集成grpc
gRPC 简介 gRPC 是一个现代开源的高性能 RPC 框架,可以在任何环境下运行.它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡.跟踪.健康检查和认证.它也适用于分布式计算,将 ...
- 【转】selenium自动化测试环境搭建
转:http://blog.csdn.net/mao1059568684/article/details/17347853 第一步 安装JDK JDk1.7. 下载地址:http://www.orac ...
- 2015年趋势科技笔试A卷
题目原题来源:url=BHz9dr7Dbql5Ai0fTaUsi8QH-ieA9UAtw8kpf-Us_cGUnsz7ZIU1SfHIp33Cphcp0n6uPikWL6r8n0a0zQ0wNOMLG ...
- adb命令--之查看进程及Kill进程
adb shell kill [PID] //杀死进程 adb 命令查看程序进程方便简洁高效 adb shell ps //查看所有进程列表,Process Status ad ...
- (转)Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 转自:http://blog.csdn.net/findsafety/article/details/52317506 很多时候我们都会不 ...
- EOJ 1114 素数环
题意 一个由自然数 1…n (n≤18) 素数环就是如下图所示,环上任意两个节点上数值之和为素数. 1 / \ 4 2 \ / 3 Input 输入只有一个数 n,表示你需要建立一个 1… ...
- Intellij IDEA社区版打包Maven项目成war包,并部署到tomcat上
转自:https://blog.csdn.net/yums467/article/details/51660683 需求分析 我们利用 Intellij idea社区版IDE开发了一个maven的sp ...
- php 0,null,empty,空,false,字符串关系(转)
在php中由于是弱类型语言,不同类型值之间可以隐式转换,使得false,null,”,0,’0′这几个值的比较有些混乱,现总结一下: //相等判断 '' == NULL == 0 == false ( ...
- 记录,javascript中对象的属性名是字符串,却可以不用引号
问题描述:今日看书,里面介绍js的对象的属性名是包括空字符串在内的所以字符串 问题来了,我们平时定义的对象如下,是没有引号""or’'的 var someone = { f ...