MySQL 安装与基本概念

Wesley13
• 阅读 796

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

  3. 重启配置才能生效

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 : 存储的所有数据不会被保存

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这