首页 > 技术文章 > MySQL 安装与基本概念

ruhai 2019-05-13 15:12 原文

Mysql版本

第一条产品线:5.0.xx及升级到5.1.xx的产品系列,这条产品线继续完善与改进其用户体验和性能,同时增加新功能,这条路线可以说是MySQL早期产品的延续系列,这一系列的产品发布情况及历史版本如下:
MySQL5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。

第二条-5.4.xx开始-到了5.7.xx产品线系列介绍第二条产品线:为了更好地整合MySQLAB公司社区和第三方司开发的新存储引擎,以及吸收新的实现算法等,从而更好地支持SMP架构,提高性能而做了大量的代码重构。版本编号为从5.4.xx开始,目前发展到了5.7x。(2019.5)

第三条-6.0.xx到7.1.xx产品线系列介绍I第三条产品线:为了更好地推广MySQL Cluster版本,以及提高MySQL Cluster的性能和稳定性,以及功能改进和增加,以及改动MySQL基础功能,使其对Cluster存储引擎提供更有效的支持与优化。版本号为6.0.xx开发,目前发展到8.1.xx。(2019.5)

企业生产场景选择MySQL数据库建议:
1)稳定版:选择开源的社区版的稳定版GA版本

2)产品线:阿以选择5.1或5.5。互联网公司主流5.5,其次是5.1和5.6。
3)选择MySQL数据库GA版发布后6个月以上的GA版本。
4)要选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本,
5)最好向后较长时间没有更新发布的版本。
6)要考虑开发人员开发程序使用的版本是否兼容你选的版本。.
7)作为内部开发测试数据库环境,跑大概3-6个月的时间。
8)优先企业非核心业务采用新版本的数据库GA版本软件。
10)向DBA高手请教,或者在及技术氛围好的群里和大家一起交流,使用真正的高手们用过的好用的GA版本产品。
11)经过上述工序之后,若是没有重要的功能BUG或性能瓶颈,则可以开始考虑作为任何业务数据服务的后端数据库软件;

mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库

其他类似软件:

​ 关系型数据库:sqlite,db2,oracle,access,sql server,MySQl

​ 非关系型数据库:mongodb,redis

关系型:彼此之间有约束或者有联系

MySQL安装

window

  1. 官网下载解压包

  2. 解压到电脑上

  3. 命令行启动

    1. 以管理员身份运行cmd
    2. cd 到解压目
    3. 输入mysqld 运行服务端
  4. 启动客户端

    1. 启动cmd 输入 msyql -h 127.0.0.1 -P 3306 -u root -p
    2. 注意这个是大写的P 回车之后输入密码,空直接回车就可以了
    3. 如果是本地可以简写为 mysql -u root -p
  5. 添加环境变量

  6. 把mysql制作成系统服务

查找mysqld端口
tasklist |findstr mysqld
taskkill /F /PID 3306
关闭mysql
mysqld --install 

查看系统服务
services.msc

命令行启动停止任务
启动 net start mysql
停止 net start mysql

目录结构解析

bin目录,存储可执行文件

data目录,存储数据文件

include目录,存储包含的头文件

lib目录,存储库文件

docs日录文档

share目录,错误消息和字符集文件客户端字符集

修改密码

修改密码:

1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是:

mysqladmin -u root password 123456

2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:

mysqladmin -u root -p password abcdef 

注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功。

3.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:

mysqladmin -u root -p123456 password abcdef 
//注意-p 不要和后面的密码分开写,要写在一起,不然会出错,错误如下所示

破解密码

  1. 停止mysql服务端

  2. 跳过授权表启动MySQL

  3.  mysqld --skip-grant-tables
     update mysql. user set password=password("root") where user="root"and host="localhost";
     flush privileges; # 刷新权限
    
  4. 关闭MySQL服务

  5. 正常启动

统一字符编码

  1. \s 查看字符集 默认的不是uft-8
  2. 新建my.ini配置文件放在安装目录

[mysq1d]
character-set-server=utf8
collation-server=utf8 general_ci
port = 3306
basedir=C:\Program Files\mysql\MySQL Server 8.0\bin
datadir=C:\Program Files\mysql\MySQL Server 8.0\data
[client}
default-character-set=utf8 

[mysq1]
port = 3306
user="root"
password="123"
Ldefault-character-set=utf8

 
  1. 重启配置才能生效

MySQL基本认识

登录命令参数

-u,-username=name,用户名p,-password[=pwd].密码
-h,-host,服务器名称
-P -port ,端口号
-D,-database ,打开指定数据库
-prompt ,设置命令提示符
-delimiter=n,指定分隔符
-V -version,输出版本信息并且退出

提示符修改

-uroot-proot--prompt提示符连接客户端时通过参数指定prompt提示符连接上案户端后,通过prompt命令修改
\D:完整的日期
d:当前数据床
|命今提示符范用参数
\h:服务器名称
\u:当前用户名

输入规则

  1. 默认的结束符是; 或者是\g

  2. 关键字与函数名称全部大写

  3. 数据库名称、表名称、字段名称等全部小写SQL语句必须以分隔符结尾

  4. SQL语句支持折行操作,只要不把单词、标记或引号字符串分割为两部分,可以在下一行继续写

  5. 数据库名称、表名称、字段名称等尽量不要使用MySQL的保留字,如果需要使用的时候需要使用反引号()将名称括起来

  6. \c 不会被执行

  7. DELIMITER // 修改默认的分隔符

  8. \T 输入在命令行中输入的命令保存在指定文件夹中 写上log的绝对路径

  9. \t 结束输入命令

系统函数

select version();
select now() ;当前时间
select user();当前用户

mysql>select version()
+-----------+
| version() |
+-----------+
| 8.0.15    |
+-----------+

mysql>select now();
+---------------------+
| now()               |
+---------------------+
| 2019-04-10 17:29:40 |
+---------------------+
1 row in set (0.00 sec)


存储引擎

存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式,用户可以根据不同的存储方式、是否进行书务处理等来选择合适的存储引擎

查看存储引擎

查看MySOL支持的存储引:SHOW ENGINES
查看显示支持的存储引掌信息:SHOW VARIABLES LIKE 'have%'
查看默认的存储引繁:SHOW VARIABLES LIKE'storage_engine':

常用的存储引擎

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

注意,同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。

BLACKHOLE : 存储的所有数据不会被保存

推荐阅读