MySQL数据库安装

一、概述

1、什么是数据库 ?
 答:数据的仓库,称其为数据库

2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
 答:他们均是一种软件,都有两个主要的功能:
  a. 将数据保存到文件或内存
  b. 接收特定的命令,然后对文件进行相应的操作

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

PS:如果有了以上软件,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System)

3、什么是SQL语句 ?
 答:上述提到MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。SQL是结构化语言(Structured Query Language)的缩写,SQL是一种专门用来与数据库通信的语言。

二、下载安装MySQL数据库安

想要使用MySQL来存储并操作数据,则需要做几件事情:

  a. 安装MySQL服务端
  b. 安装MySQL客户端
  b. 【客户端】连接【服务端】
  c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)

 官方下载网址:http://dev.mysql.com/downloads/mysql/

Window版本安装

1、下载 ,MySQL Community Server 5.7.16版本

2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:E:\

解压后文件夹里的文件

安装和启动MySQL

MySQL解压后的 bin 目录下有一大堆的可执行文件

1、初始化

cmd以管理员身份运行

进入初始化目录

//在 cmd终端 输入 cd E:\mysql-5.7.16-winx64\bin

C:\WINDOWS\system32>cd E:\mysql-5.7.16-winx64\bin

进入目录后初始化数据

//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysqld --initialize-insecure

E:\mysql-5.7.16-winx64\bin>mysqld --initialize-insecure

注意:此时没有什么返回信息,查看E:\mysql-5.7.16-winx64目录下是否自动生成了data文件夹,如果生成了此文件夹并且文件夹里包含了数据,表示初始化成功

data文件夹里包含数据

启动MySQL服务

//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysqld

E:\mysql-5.7.16-winx64\bin>mysqld

注意:此时cmd终端无法操作了,直接关闭cmd终端窗口

重新以管理员身份运行cmd终端进入E:\mysql-5.7.16-winx64\bin>目录

启动MySQL客户端并连接MySQL服务

由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码

//在 E:\mysql-5.7.16-winx64\bin> 目录下输入 mysql -u root -p

E:\mysql-5.7.16-winx64\bin>mysql -u root -p

//Enter password: 提示请输入密码,直接回车

到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述 mysql -u root -步骤即可。但是,重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。

添加环境变量

将MySQL可执行文件添加到环境变量中,从而执行执行命令即可

【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】

//如:
C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin

如此一来,以后再启动服务并连接时不需要在进入bin目录了,仅需:

// 启动MySQL服务,在终端输入
mysqld // 连接MySQL服务,在终端输入:
mysql -u root -p

将MySQL服务制作成windows服务

上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:

// 制作MySQL的Windows服务,在终端执行此命令:
"E:\mysql-5.7.16-winx64\bin\mysqld" --install // 移除MySQL的Windows服务,在终端执行此命令:
"E:\mysql-5.7.16-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

// 启动MySQL服务
net start mysql // 关闭MySQL服务
net stop mysql

卸载mysql是cd到bin目录下执行mysqld --remove

检测安装,输入 mysql --version

输入exit退出

Linux版本安装

在线安装

安装:

yum install mysql-server  

服务端启动

mysql.server start

客户端连接

//连接:
mysql -h host -u user -p //常见错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running. //退出:
QUIT 或者 Control+D

离线安装【推荐】

1、解压MySQL-5.7.16-Linux-glibc2.5-x86_64.tar.gz,并拷贝到/usr/local/mysql目录下
解压:

tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

拷贝:

sudo cp -r mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql

2、添加系统mysql组和mysql用户 
添加系统mysql组

sudo groupadd mysql

添加mysql用户

sudo useradd -r -g mysql mysql

添加完成后可用id mysql查看

3、安装数据库

切换到/usr/local/mysql目录

cd /usr/local/mysql

修改当前目录拥有者为mysql用户

sudo chown -R mysql:mysql ./

安装数据库(5.7版本的安装已经不建议使用mysql_install_db 来安装,而是使用mysqld)

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

临时密码:xk?hs6OhU

执行以下命令创建RSA private key

sudo bin/mysql_ssl_rsa_setup  --datadir=/usr/local/mysql/data

修改当前目录拥有者为root用户

sudo chown -R root:root ./

修改当前data目录拥有者为mysql用户

sudo chown -R mysql:mysql data

4、配置my.cnf和开机启动

cd support-files
sudo cp my-default.cnf /etc/my.cnf
sudo cp mysql.server /etc/init.d/mysql
sudo vim /etc/init.d/mysql ##修改basedir= 自己的路径 修改datadir= 自己的路径

修改完毕后:wq!保存并退出vi 
vi命令:

按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑

修改my.cnf

sudo vim /etc/my.cnf
[mysqld]
character-set-server=utf8
datadir=/home/mysql/mysqldata
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock

保存并退出

5、启动mysql

service mysql start

登录mysql,并设置远程连接

mysql -u user -p

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;

第二百七十五节,MySQL数据库安装和介绍的更多相关文章

  1. 第二百七十八节,MySQL数据库-表内容操作

    MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...

  2. 第二百六十五节,xss脚本攻击介绍

    xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...

  3. 第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表、课程机构表、讲师表

    第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表.课程机构表.讲师表 创建名称为app_organization的课 ...

  4. 第二百七十九节,MySQL数据库-pymysql模块操作数据库

    MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...

  5. 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】

    MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...

  6. 第二百八十五节,MySQL数据库-MySQL函数

    MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...

  7. 第二百八十八节,MySQL数据库-索引、limit分页、执行计划、慢日志查询

    MySQL数据库-索引.limit分页.执行计划.慢日志查询 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获 ...

  8. 第二百八十三节,MySQL数据库-MySQL存储过程

    MySQL数据库-MySQL存储过程 MySQL存储过程,也就是有点像MySQL函数,但是他与MySQL函数是有区别的,后面会讲到函数,所以注意区分 注意:函数与存储过程的区别 存储过程是:CREAT ...

  9. 第二百七十四节,同源策略和跨域Ajax

    同源策略和跨域Ajax 什么是同源策略  尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...

随机推荐

  1. sass 和 css 互转网址

    sass to css:https://www.sassmeister.com/ css to sass:http://css2sass.herokuapp.com/

  2. 查看物体A是否被相机B渲染

    using UnityEngine; using System.Collections; public class Test : MonoBehaviour { public GameObject a ...

  3. 算法笔记_022:字符串的旋转(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力移位 2.2 三步反转 1 问题描述 给定一个字符串,要求将字符串前面的若干个字符移到字符串的尾部.例如,将字符串“abcdef”的前3个字符‘a’.‘b ...

  4. Java网络编程-HTTP协议

    HTTP协议的定义 这篇文章暂时不研究HTTP底层的TCP/IP的握手和挥手过程,只从表面的交互流程分析HTTP协议. HTTP英文全称是Hypertext Transfer Protpcol,也就是 ...

  5. Bitmap尺度变换

    Bitmap bitMap = BitmapFactory.decodeFile(path); int width = bitMap.getWidth(); int height = bitMap.g ...

  6. Sublime Text 包管理工具及扩展大全

    Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...

  7. js 向上取整、向下取整、四舍五入

      js 向上取整.向下取整.四舍五入 CreateTime--2018年4月14日11:31:21 Author:Marydon // 1.只保留整数部分(丢弃小数部分) parseInt(5.12 ...

  8. 【Excle数据透视】多列分别分类计数

    需求 今天碰到一个很特殊的需求,如下(分别对每一列的值去重并统计个数): 预期结果 实现方法 推荐使用第三种方案,因为不用写公式,比较简单! 方法一:使用countif函数 在单元格J2输入公式COU ...

  9. 基于canvas的原生JS时钟效果

    概述 运用html5新增画布canvas技术,绘制时钟效果,无需引用任何插件,纯js. 详细 代码下载:http://www.demodashi.com/demo/11935.html 给大家介绍一个 ...

  10. SCF: 简单配置门面

    SCF: 简单配置门面 [English]  [中文] Simple Configuration Facade, 简写为 SCF.是 代码 和 外部配置 (properties文件, 环境变量,系统/ ...