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
官网下载解压包
解压到电脑上
命令行启动
- 以管理员身份运行cmd
- cd 到解压目
- 输入mysqld 运行服务端
启动客户端
- 启动cmd 输入 msyql -h 127.0.0.1 -P 3306 -u root -p
- 注意这个是大写的P 回车之后输入密码,空直接回车就可以了
- 如果是本地可以简写为 mysql -u root -p
添加环境变量
把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 不要和后面的密码分开写,要写在一起,不然会出错,错误如下所示
破解密码
停止mysql服务端
跳过授权表启动MySQL
mysqld --skip-grant-tables update mysql. user set password=password("root") where user="root"and host="localhost"; flush privileges; # 刷新权限
关闭MySQL服务
正常启动
统一字符编码
\s 查看字符集 默认的不是uft-8
新建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
重启配置才能生效
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:当前用户名
输入规则
默认的结束符是; 或者是\g
关键字与函数名称全部大写
数据库名称、表名称、字段名称等全部小写SQL语句必须以分隔符结尾
SQL语句支持折行操作,只要不把单词、标记或引号字符串分割为两部分,可以在下一行继续写
数据库名称、表名称、字段名称等尽量不要使用MySQL的保留字,如果需要使用的时候需要使用反引号()将名称括起来
\c 不会被执行
DELIMITER // 修改默认的分隔符
\T 输入在命令行中输入的命令保存在指定文件夹中 写上log的绝对路径
\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 : 存储的所有数据不会被保存