一 Mysql基础

Posted gyxpy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一 Mysql基础相关的知识,希望对你有一定的参考价值。

一:Mysql初识

why:

  1.1数据文件和程序不应该放在同一台机器上!一旦机器挂了,数据和程序全都挂了不能对外提供服务.

  1.2纵向扩展有极限,横向扩展可以解决瓶颈问题.

  1.3虽然可以使用代码来对文件里面的数据进行操作,但是代码操作文件里面的数据是很麻烦.

  1.4解决文件操作的并发问题,多台部署程序的机器操作同一个文件肯定有并发问题,连接问题,数据一致性问题等等,要么效率低下,要么并发不安全.

  1.5开发者只要开发基于数据的程序,就要自己写socket代码,来连接client和server端,然后传输数据.

what:

Mysql已经写好的socket代码,不用开发者自己写了

开发者可以不用关注数据的管理操作,你可以抽身出来把精力放到你的逻辑代码中

Mysql是一个C/S架构的软件,帮我们管理数据库,解决了上述的效率问题,并发问题,稳定性问题,数据一致性问题

架构方面,mysql主从复制,多节点部署,即使挂了一台,开一个节点,立马同步其他节点的数据就可以对外提供服务,完全不影响使用

Mysql是一个数据库管理软件,帮助我们管理数据库,具体如何操作数据的复杂的操作它来完成,你只需要通过sql语句来告诉他你想干什么,它就会十分高效的完成.

当然mysql不是唯一的DBMS,ORACEL,SQLSERVER等都是不错的DBMS.便宜不要钱,性能还好,尽管被Oracle收购了,还有mariaDB来解决Mysql闭源的风险.

linux上安装mysql的时候会发现,都用mariaDB来替代了mysql,只是换了个名字,其他操作没有变化.

二:概念梳理

数据库:就是文件夹

表:就是文件,存放数据的,列叫字段,行叫记录

Mysql是高效管理数据存储,数据查询的一个系统软件.

mysqld来负责和client打交道

数据库服务器:安装DBMS的计算机,性能卓越

表结构:desc tablename查看表结构,有字段名,字段类型,约束等

数据库分类:

关系型数据库:有表结构

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

三:安装Mysql

windows安装就是一路点点点

linux下安装,yum install -y mysql-server mysql,现在都换成了mariadb

  1.启动mysql:systemctl start mariadb

  2.设置开机启动:systemctl enable mariadb

  3.安装之后没有密码,进入mysql,mysql -uroot -p直接回车进入没有密码

  4.设置密码set password=password("123")

  5.select user();查看当前用户,以及允许登录的ip

  6.root权限下,创建新的用户:create user "abc"@"192.168.1.1" identified by "123";-----此时只有这个ip可以以用户名abc密码123登录,%百分号为通配符.

    6.1create user "gyx"@"192.168.1.%" identified by "123";限制为某一个网段

    6.2create user "gyx"@"%" identified by "123";所有机器都可以连接

  7.新创建的用户,看到的数据库,show databeses;有限,需要授权看到数据库中哪张表,以及限制操作

    7.1grant all on *.* to "abc"@"%";给用户abc开了所有权限

    7.2flush privileges;刷新权限立马生效

 6&7合并:创建用户并授权:grant all on *.* to ‘eva‘@‘%‘ identified by ‘123‘;一步到位.

四:配置文件

windows下my.ini先备份一份

linux /etc/my.cnf也是先备份一份, copy /etc/my.cnf /etc/my.cnf.bak

然后进去修改,基本不用改,

技术图片
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-5.6.39-winx64 
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-5.6.39-winx64\data 
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
View Code

mysql是客户端的配置

mysqld是服务端配置

所有的数据文件都放在根目录的data文件夹里面,mysqldump定时备份数据库

五:基础操作

show databases;查看所有数据库

use databasename;选择某数据库,相当于打开文件夹

show tables;显示所有的数据表

descc tablename;查看表结构

select databases();查看当前在哪个数据库下

技术图片
#1. 操作文件夹
        增:create database db1 charset utf8;
        查:show databases;
        改:alter database db1 charset latin1;
        删除: drop database db1;


#2. 操作文件
    先切换到文件夹下:use db1
        增:create table t1(id int,name char);
        查:show tables
        改:alter table t1 modify name char(3);
              alter table t1 change name name1 char(2);
        删:drop table t1;
    

#3. 操作文件中的内容/记录
        增:insert into t1 values(1,egon1),(2,egon2),(3,egon3);
        查:select * from t1;
        改:update t1 set name=sb where id=2;
        删:delete from t1 where id=1;

        清空表:
            delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
            truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,

            auto_increment 表示:自增
            primary key 表示:约束(不能重复且不能为空);加速查找
sql基础

 

以上是关于一 Mysql基础的主要内容,如果未能解决你的问题,请参考以下文章

01 mysql基础一 (进阶)

mysql基础一

《零基础入门MySQL数据库》专栏简介

一,数据库基础,MySQL安装,配置文件,语法

MySQL基础教程---mysql事务与储存引擎

MySQL基础