最近在写一个聊天室,之前我是直接用ArrayList来存储一个用户的信息,比如ID,姓名,上线时间等。这样感觉起来其实就是自己在做一个数据库,然而我们是有一个普遍适用的数据库的(其实就是大家都用的!)。
MYSQL:我是关系型数据管理系统。
小白白:关系型,数据管理系统(数据库)?
MYSQL:是的呢,数据库是存储在计算机内,按照数据结构来组织,存储和管理数据的仓库,那每个数据库都会存在对应的一个及以上的API,来操作数据库的数据。关系型数据库则是针对大量的数据的管理(存在很多冗余数据),来存储和管理大数据,建立在关系模型之上。常见的类型包括,MYSQL,SQLserver,oracle等等。
小白白:关系模型又是啥,可以讲讲关系型数据库的特点吗?感觉还是不太能理解。
MYSQL:关系模型指二维表格模型,我可以讲些相关概念帮助理解:
- 关系:一张二维表,每个关系都具有一个关系名,也就是表名;
- 元组:二维表的一行,称为记录;
- 属性:二维表的一列,称为字段;
- 域 :属性的的取值范围;
- 关键字:一组可以标识元组的属性,称为主键,由一个或者多个列组成;
小白白:大概能够理解啦!二维表确实是我们生活中常见的而且容易理解的。
MYSQL:的确是的,而且使用sql语言能够使得操作关系特别的方便。但其实关系型数据库也是存在一些问题的,比如对于一个网站,用户的并发性很高,同时读写数据,数据量很大,查询等操作就会导致效率很低。
小白白:无论是软件还是事情,总是存在两面性的,使用了解清楚各自的优缺点,合理恰当的运用才是我们应该多加注意的。
MYSQL:我刚刚跟你说的是关系型的数据库,与之对应的就是菲关系型数据库,分布式的,它是以键值对存储的,且结构很不稳定,每个元组有不一样的字段,可以根据自己的需要去添加键值对,不局限固定的结构,减少了时间与空间的开销。
优点:根据需要添加键值对,获取不同的用户信息只需要根据ID取出相应的value就可以了,关系型是需要进行多表关联查询的。另外,它适用于微博,facebook等。
不足:不适合持久存储海量数据
现在的主流其实还是关系型数据库。
小小白:那非关系型的一些应用都有哪些呢?
MYSQL:应该可以分成下面几个方面:面向高性能并发读写的key-value数据库;面向海量数据访问的面向文档数据库;面向搜索内容的搜索引擎,面向可扩展性的分布式数据库。
小小白:这些非关系数据库好像刚刚能弥补关系型的一些缺点呢。
接下来即将登场的是我的安装小日记。
在2019年3月18日,这个风和日丽的下午,我开启了安装mysql之旅,之前朋友安装过一次,所以我开心地看着她的链接开始了安装,然而,正如一千个读者就有一千个哈姆雷特,刚开始我始终坚信着只要按照网上的步骤装,那么结果肯定是OK的,但是我不得不承认,一千个人安装就可能有一千种结果,作为一个害怕安软件的女孩子,我别无他法,直到遇到了好朋友的室友的安装文档,听说这个是傻瓜式教程,而且亲测有效,我燃起了希望,之前我安装的是5.8版本的,后来她的是5.5版本,而且前者是用命令行安装的,后者是像一个app那样安装。
你们以为这是结束吗,那当然不,这才是开始,他们同时报同样的错误。
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor:YES) 两个版本的都是,
大家这样复制这句话上去就可以看到百度上五花八门的答案,但是这些解释都不是我的解决方案,最普遍的就是利用:
skip-grant-tables #在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查 对啊,但是就算我用了这个还是需要密码,哇!
我觉得有篇博客对这个的分析挺到位的。推荐给大家:
就是他
最后,我很无奈的安装的另外的一个版本5.7;5.7的安装
其实进去里面各种版本都有提供,大家可以根据自己需要去寻找。
其实按照那个安装是完全没得错的,但是呢,由于我之前安装了两个版本的mysql,其中还有一个放在了c盘,删都删不掉,所以产生了上面的同样的问题,最后的最后,因为帅气的大佬过来帮助小小白我啦,当时的我的状态就是牙疼头疼心痛。
大佬在安装的时候遇到的问题我们(我和朋友)都有发生过,解决的方法我们也做过,正在我觉得只能放弃这个mysql的时候,大佬一个取消配置文件的操作,突然成功了。
当时内心的激动不亚于…就是很激动就是了。
其实这个过程我大概没怎么看到,但是是把my.ini文件加个后缀.md。
这个啰嗦的日记就到这啦。接下来是如何去使用了。