第二百七十五节,MySQL数据库安装和介绍
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
-
p
步骤即可。但是,重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。
添加环境变量
将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数据库安装和介绍的更多相关文章
- 第二百七十八节,MySQL数据库-表内容操作
MySQL数据库-表内容操作 1.表内容增加 insert into 表 (列名,列名...) values (值,值,值...); 添加表内容添加一条数据 insert into 表 (列名,列名. ...
- 第二百六十五节,xss脚本攻击介绍
xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...
- 第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表、课程机构表、讲师表
第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表.课程机构表.讲师表 创建名称为app_organization的课 ...
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】
MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...
- 第二百八十五节,MySQL数据库-MySQL函数
MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...
- 第二百八十八节,MySQL数据库-索引、limit分页、执行计划、慢日志查询
MySQL数据库-索引.limit分页.执行计划.慢日志查询 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获 ...
- 第二百八十三节,MySQL数据库-MySQL存储过程
MySQL数据库-MySQL存储过程 MySQL存储过程,也就是有点像MySQL函数,但是他与MySQL函数是有区别的,后面会讲到函数,所以注意区分 注意:函数与存储过程的区别 存储过程是:CREAT ...
- 第二百七十四节,同源策略和跨域Ajax
同源策略和跨域Ajax 什么是同源策略 尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...
随机推荐
- Oracle中CBO优化器简介
Oracle中CBO优化器简介 Oracle数据库中的优化器是SQL分析和执行的优化工具.它负责制定SQL的执行计划,也就是它负责保证SQL的执行计划的效率最高,比如优化器决定Oracle以什么样的方 ...
- 基于Unity3D云人脸监測技术
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师.CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户程序呢
Question 引自<深入理解Java虚拟机—JVM高级特性与最佳实践>9.2.1,p235 如果有10个WEB应用程序都是用spring来进行组织管理的话,可以把Spring放到Com ...
- iOS_数据库2_基础知识
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- 【windows7】解决IIS 80端口占用问题(亲测)
1.默认你win机器已经安装并启用了80端口 2.现在你要安装并启用apache服务器 3.首先进行80端口占用检测:netstat -aon|findstr 80 4.找到进程号为404的服务名称, ...
- Eclipse wtp project dependent project facets问题
wtp project会编译成一个war包,但在eclipse里debug时,依赖的project没有自动编译成jar包并打包到war的lib目录里. 原因:依赖project的facets未设置或未 ...
- SQLServer 2008中SQL增强之三 Merge(在一条语句中使用
SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看M ...
- C#:转换类型(待补充)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyCo ...
- django Proxy models ---- 代理模式
一个proxy models 不会在数据库中创建新的表.而是与它的基类共用同一个表 1.model 的定义: from django.db import models # Create your mo ...
- 如何实现php异步处理
在实际生成环境下,php作为后台的接口服务器已经很常见,php当然具有它能作为后台服务器的优势之处,但是,在处理一些客户端并不关心的结果时,就显出它的弊端了---没有异步执行的机制.就比如我们想做一些 ...