mysql数据库程序是什么_Mysql数据库简介

一、认识数据库

1.数据库的由来

之前所认识的数据都是存存某一个文件当中,但是一个文件只能存在于一台机子上,但在现实中不可能所有的数据都是存放在一台机子上的。

(1)现实中是不可能将所有的应用程序放在一台机子上的

假设所有的应用程序只安装在一台机子上,若该机子崩掉,则意味着数据永久性的消失,所以除非煞笔,要不然没有人会这么做的。并且一台机子的性能是有限的,有些人就想到了给机子添加硬件,关键是你再怎么添加硬件来提升性能,到最后肯定是会达到一个极限的,所以,将所有的应用程序都安装在一台机子上的做法是不可取的。

(2)数据的安全型没有保障

数据若之存放于单独某一台机子上,数据的共享性就必然不一致了。所以,尽量不要将所有的数据存放于一台机子上。

(3)并发效果

必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:

#1.远程连接(支持并发)

#2.打开文件

#3.读写(加锁)

#4.关闭文件

总结上述几点:

在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的

处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数

据管理中解脱出来,专注于自己的程序逻辑的编写。

二、数据库概述

1.数据的概念

世界中用来描述一切事物状态的记录符号称之为数据,它可以是图片、视频、文件等等。

2.数据库的概念

数据库即存放所有数据的一个仓库,只是这个仓库是位于计算机上的,并且是按照一定的格式来储存的。

3.数据库管理系统(DataBase Management System-DBMS)

为了科学地组织和存储数据,高效获取和维护数据,这就用到了一个系统软件---数据库管理系统,如MySQL、Oracle、SQLite、Access、MS SQL Server。

4. 数据库服务器、数据管理系统、数据库、表与记录的关系--重点理解

记录:1 张大胖  324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)

表:student,scholl,class_list(即文件)

数据库:oldboy_stu(即文件夹)

数据库管理系统:如mysql(是一个软件)

数据库服务器:一台计算机(对内存要求比较高)

总结:

数据库服务器-:运行数据库管理软件

数据库管理软件:管理-数据库

数据库:即文件夹,用来组织文件/表

表:即文件,用来存放多行内容/多条记录

三、Mysql介绍

1.mysql是什么?

MySQL是一个关系型数据库管理系统,是一个基于socket编写的c/s架构软件。

客户端的软件:MySQL自带>>如MySQL命令,mysqldump命令等

python模块>>如pymysql

2.数据库管理软件的分类

主要分成两大类:

关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用

非关系型:mongodb,redis,memcache

可以理解成:

关系型数据库需要有表结构

非关系型数据库是key-value存储的,没有表结构

四、安装

linux版本

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1.解压tar包

cd/software

tar-xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21

2.添加用户与组

groupadd mysql

useradd-r -g mysql mysql

chown-R mysql:mysql mysql-5.6.21

3.安装数据库

su mysql

cd mysql-5.6.21/scripts

./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data4.配置文件

cd/software/mysql-5.6.21/support-files

cp my-default.cnf /etc/my.cnf

cp mysql.server/etc/init.d/mysql

vim/etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步

修改文件中的两个变更值

basedir=/software/mysql-5.6.21datadir=/software/mysql-5.6.21/data5.配置环境变量

vim/etc/profile

export MYSQL_HOME="/software/mysql-5.6.21"export PATH="$PATH:$MYSQL_HOME/bin"source/etc/profile6.添加自启动服务

chkconfig--add mysql

chkconfig mysql on7.启动mysql

service mysql start8.登录mysql及改密码与配置远程访问

mysqladmin-u root password 'your_password' #修改root用户密码

mysql -u root -p #登录mysql,需要输入密码

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问

mysql>FLUSH PRIVILEGES; #刷新权限

源码安装mysql

源码安装mysql

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1. 解压

tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz

mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录2. 权限

groupadd mysql//增加 mysql 属组

useradd-g mysql mysql //增加 mysql 用户 并归于mysql 属组

chown mysql:mysql-Rf /usr/local/mysql //设置 mysql 目录的用户及用户组归属。

chmod+x -Rf /usr/local/mysql //赐予可执行权限3. 拷贝配置文件

cp/usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //复制默认mysql配置 文件到/etc目录4. 初始化/usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化数据库

cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //复制mysql服务程序 到系统目录

chkconfig mysql on//添加mysql 至系统服务并设置为开机启动

service mysql start//启动mysql5. 环境变量配置

vim/etc/profile //编辑profile,将mysql的可执行路径加入系统PATH

export PATH=/usr/local/mysql/bin:$PATH

source/etc/profile //使PATH生效。6. 账号密码

mysqladmin-u root password 'yourpassword' //设定root账号及密码

mysql-u root -p //使用root用户登录mysql

use mysql//切换至mysql数据库。

select user,host,passwordfrom user; //查看系统权限

drop user''@'localhost'; //删除不安全的账户

drop user root@'::1';

drop user root@127.0.0.1;

select user,host,passwordfrom user; //再次查看系统权限,确保不安全的账户均被删除。

flush privileges;//刷新权限7. 一些必要的初始配置1)修改字符集为UTF8

vi/etc/my.cnf

在[client]下面添加 default-character-set =utf8

在[mysqld]下面添加 character_set_server=utf82)增加错误日志

vi/etc/my.cnf

在[mysqld]下面添加:

log-error = /usr/local/mysql/log/error.log

general-log-file = /usr/local/mysql/log/mysql.log3) 设置为不区分大小写,linux下默认会区分大小写。

vi/etc/my.cnf

在[mysqld]下面添加:

lower_case_table_name=1修改完重启:#service mysql restart

源码安装mariadb

window版本

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#1、下载:MySQL Community Server 5.7.16

http://dev.mysql.com/downloads/mysql/

#2、解压

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64#3、添加环境变量

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 -->【将MySQL的bin目录路径追加到变值值中,用 ; 分割】#4、初始化

mysqld --initialize-insecure#5、启动MySQL服务

mysqld #启动MySQL服务

#6、启动MySQL客户端并连接MySQL服务

mysql -u root -p #连接MySQL服务器

安装

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:

注意:--install前,必须用mysql启动命令的绝对路径#制作MySQL的Windows服务,在终端执行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --install#移除MySQL的Windows服务,在终端执行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:#启动MySQL服务

net start mysql#关闭MySQL服务

net stop mysql

将MySQL服务做成window服务

五、软件管理待更。。

六、初识 sql 语句

mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,

然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Language 即结构化查询语言)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:#1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER#2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT#3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

语句类型

1.登录MySQL数据库

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql -u root -p

登录

2.库的操作

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#charset:给数据库指定编码格式

增: create database db charset utf8;#查询数据库中所有的库

查: show databases;#因还未增添数据,故只能修改字符编码

改: alter database db charset gbk;#删除指定的库

删: drop database db;

对库的操作

3.文件夹的操作

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#首先得切换至需要操作的文件夹下

use db;#创建文件夹,并指定表字段数据类型

增:create table student(id int,name char);

create table db.student(id int,name char);#查询当前库下的所有文件夹

查:show tables;#只能改表字段下的数据

改:alter table student modify name char(15);#更改表字段的同时可以更改表字段下的数据

alter table student change name new_name char(10);

删:drop table student;

对文件夹的操作

4.文件的操作

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#增加数据是最后一个一定不能加逗号

增:insert into student values(1,'Luffy'),(2,'Namy'),(3,'Brooke');

查:

表格式化:desc student;

指定条件查找:select* from student where id>1;

查所有:select* fromstudent;

改:update student set name='LUFFY' where id =1;

删:#如果有自增id(即id默认主动增加),新增的数据,仍然是以删除前的最后一条记录作为起始

delete from student where id=1;#数据量大,删除速度比上一条快,且新增的记录直接从零开始

truncate table student;

auto_increment 表示:自增(即在默认情况下,往表格中加一条数据,id会自动加1)

primary key 表示:约束(不能重复且不能为空--not null unique);加速查找

对文件的操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值