了解MySQL之前,我们必须连接数据库以及数据库相关的内容
什么是数据
描述事物的符号记录称为数据,它可以表示是为文字,数字,符号等
什么是数据库
数据库是长期存放在计算机内、有组织、可共享的数据集合
什么是DBMS
数据库管理系统,他负责科学地组织和存储数据。
数据库的发展历史:
人工管理阶段
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
当时的硬件水平:外存只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备 当时的软件状况:没有操作系统,没有管理数据的软件,数据的处理方式是批处理。 人工管理数据具有以下特点: 1 数据不保存:计算机主要用于科学计算,数据临时用,临时输入,不保存 2 应用程序管理数据:数据要有应用程序自己管理,应用程序需要处理数据的逻辑+物理结构,开发负担很重 3 数据不共享:一组数据只对应一个程序,多个程序之间涉及相同数据时,必须各自定义,造成数据大量冗余 4 数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做出相应的修改,开发负担进一步加大
文件系统阶段
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
硬件水平:有了磁盘、磁鼓等可直接存取的存储设备 软件水平:有了操作系统,并且操作系统中已经有了专门的数据管理软件,即文件系统;处理方式上不仅有了批处理,而且能够联机实时处理 文件系统管理数据具有以下优点: 1 数据可以长期保存:计算机大量用于数据处理,因而数据需要长期保存,进行增删改查操作 2 由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件,利用按文件名,按记录进行存取。实现了记录内的结构性,但整体无结构。并且程序与数据之间由文件系统提供存取方法进行转换,是应用程序与数据之间有了一定的独立性,程序员可以不必过多考虑物理细节。 文件系统管理数据具有以下缺点: 1 数据共享性差,冗余度大:一个文件对应一个应用程序,不同应用有相同数据时,也必须建立各自的文件,不能共享相同的数据,造成数据冗余,浪费空间,且相同的数据重复存储,各自管理,容易造成数据不一致性 2 数据独立性差:一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。应用程序的改变,也将引起文件的数据结构的改变。因此数据与程序之间缺乏独立性。可见,文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内存联系。
数据库系统阶段
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
硬件水平:有了大容量磁盘,硬件架构下降 软件水平:软件价格上升(开发效率必须提升,必须将程序员从数据管理中解放出来),分布式的概念盛行。 数据库系统的特点: 1 数据结构化(如上图odboy_stu) 2 数据共享,冗余度低,易扩充 3 数据独立性高 4 数据由DBMS统一管理和控制 a:数据的安全性保护 b:数据的完整性检查 c:并发控制 d:数据库恢复
数据库的类型
关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用 非关系型:mongodb,redis,memcache
本章将主要使用mysql(关系型数据库)
mysql数据的安装(5.7)
- 下载安装包:
进入官网选择,redhat的5.7版本。按键f12.找到下载的连接。使用迅雷下载。
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
- 解压安装包:
tar -xvf 名字
- 剪除mariadb的干扰问题
rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
rpm -e mariadb-server-5.5.64-1.el7.x86_64 --nodeps
rpm -e mariadb-* --nodeps
rpm -qa|grep mariadb
- 安装数据库,使用rpm的形式
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
- 初始化
mysqld --initialize --user=mysql
- 获取密码,然后使用密码登录即可。
grep 'temporary password' /var/log/mysqld.log
- 如果密码登录很麻烦,或者密码已经失效的话。请使用如下处理方式
-
vim my.cnf [mysqld] skip-grant-tables datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid explicit_defaults_for_timestamp=true
- 然后启动MySQL,进入MySQL无需写入密码,修改root密码
-
mysql> use mysql; mysql> update mysql.user set authentication_string=password('Keepl023') where user='root'; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit 在my.cnf文件中,把刚才加入的那一行“skip-grant-tables”注释或删除掉。 然后重启MySQL服务后需要执行命令set password=password('newpassword');后,问题搞定。
service mysqld start
mysql -u root -pKeepl023
mysql> use mysql;
mysql> set password=password('Keepl023');
第一次登陆进去后必须马上修改密码,不然下次登陆会报错。
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
可以忽略:
View Code
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mysql> set global validate_password_policy=0; //只验证长度 mysql> set global validate_password_length=6; //修改密码长度,默认值是8个字符
mysql> alter user user()identified by"123456"; //修改登陆密码,长度应大于8且有复杂度如:Aa123689#
成功登陆后,可以创建一个数据库来使用下:
create database stu;
use stu;
create table object(math int,chinese int,english int);
describe stu //查看属性
insert into object values(01,02,03)
select * from object //查看表数据
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/articles/12491054.html