文档章节

关系型数据库mysql 基础知识

胡子叭槎
 胡子叭槎
发布于 2016/11/07 23:27
字数 1488
阅读 25
收藏 2

关系型数据库
    SQL:
        mysql
        oracle
        db2
        sysbaes
        access
        vfor

非关系型数据库
    NoSQL
        memorycache
        redis
        mongodb
mysql:
    mysql是一个开源的关系型数据库
    
1.安装mysql
    软件分类
        服务端:mysql-server x86,x86_64
        客户端:mysql-client x86,x86_64

2.安装方式:
    rpm:
    源码
    二进制包
3.mysql下载地址
    http://dev.mysql.com/downloads/mysql/

4.系统原生的mysql
    rhel6及rhel6以下的版本都叫mysql
    rhel7里面mysql叫做mariadb
    安装原生mysql:
        yum install mysql mysql-server
        使用的是光盘镜像中的mysql
5.使用源码安装mysql
    准备cmake软件包
    准备mysql源码包
    准备一台虚拟机,添加一块20G的硬盘

    源码安装mysql需要cmake的支持
    所以需要先安装cmake

    还需要检测系统是否支持编译安装
    yum groupinstall "Development tools"
    
    还需要一些特殊依赖关系
    yum install openssl openssl-devel zlib zlib-devel ncurses-devel ncurses readline readline-devel
    
    安装之前还需要把硬盘做成lvm进行管理以方便后期进行磁盘扩容
    pvcreate /dev/sdb1
    vgcreate myvg /dev/sdb1
    lvcreate -L 10G -n mydata myvg
    mke2fs -j /dev/myvg/mydata
    mkdir /mydata
    vim /etc/fstab
    /dev/myvg/mydtata /mydata  ext4 defaults 0 0 

    准备用户:
        groupadd -r mysql
        useradd -r  -g mysql -s /sbin/nologin mysql
        mkdir /mydata/data保存mysql数据的目录
        chown mysql.mysql /mydata/data -R修改权限让mysql用户和mysql组对其拥有相应权限
       cd mysql-5.6.20
       cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
        make
        make install
        cd /usr/local/mysql
        scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
        vim /etc/profile.d/mysql.sh
        export PATH=$PATH:/usr/local/mysql/bin
        cp support-files/mysql.server /etc/init.d/mysqld56
        cp support-files/my-default.cnf /etc/my.cnf记住备份以下my.cnf
        需要对/etc/my.cnf进行配置添加
        [client]
        port        = 3306
        socket      = /tmp/mysql.sock
        [mysqld]
        port        = 3306
        socket      = /tmp/mysql.sock
        skip-external-locking
        key_buffer_size = 256M
        max_allowed_packe = 1M
        table_open_cache = 256
        sort_buffer_size = 1M
        read_buffer_size = 1M
        read_rnd_buffer_size = 4M
        myisam_sort_buffer_size = 64M
        thread_cache_size = 8
        query_cache_size = 16M
        thread_concurrency = 4
        datadir = /mydata/data

        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    /etc/ini.d/mysql56 restart
     为root用户设置密码
     mysqladmin -uroot password 'new_pass'

    链接mysql服务器
    本机:
        mysql -uroot -p
        输入密码:
        推荐使用上面的方式
        mysql -uroot -p123456


    rpm:
        rpm -Uvh MySQL-shared-*
        rpm -Uvh MySQL-devel-5.6.21-1.el6.x86_64.rpm
        rpm -Uvh MySQL-client-5.6.21-1.el6.x86_64.rpm
        yum localinstall MySQL-server-5.6.21-1.el6.x86_64.rpm


    mysql基础操作指令
        1.mysqladmin -uroot password 'new_pass'为root用户设置密码
        2.进入mysql交互式环境
        mysql>update user set Password=password('new_pass') where User='root'
        也是为root用户设置密码
        3.例外也可以使用mysql_secure_installation指令去初始化数据库并设置root密码

        4.链接mysql
            mysql指令
                mysql
                mysql -uusername -ppassword
                mysql -uusername -ppassword -h host
                另外对于设置了密码的又不想登录的时候输入密码可以在用户家目录下编写.my.cnf
                [client]
                user=root
                password=123456
                host=127.0.0.1
                mysql mysql -uusername -ppassword -h host -P port -D db_name
                
        5.mysql交互式基本指令
            ;mysql交互式默认的语句结束符,
            如果没有结束会出现‘->’这个符号来告知你语句没有结束
            show databases;查看有那些数据库存在
            use db_name;选择使用那个数据库
            show tables;查看db_name下的表有那些
            ?,\?,help:查看帮助信息
            \q,quit推出mysql交换环境
            \c;提前结束语句,如果前面有分号的将提前结束失败
            \d,设置语句结束符
            \G,显示方式设置
            \.,source 执行sql脚本
            \s,查看mysql系统相关信息

            存储引擎:
                非事务:
                    MyISAM
                    对于读性能有要求,中小型企业使用
                事务:
                    innodb
                    默认所有表共享一个表空间
                    innodb_file_per_table| ON 最好把新建一个表就分配一个表空间的功能打开
                    事务提交:
                        commit
                    事务回滚:
                        rollback
                具体选择需要根据业务情况决定
                存储引擎是针对于表来说的

                mysql> show variables like '%eng%';查看系统默认存储引擎
                mysql> show variables like '%innodb%';查看innodb参数
                mysql> show table status like 'user'\G;查看表的属性
                mysql> desc user;查看表结构
                mysql> set global innodb_file_per_table=1 设置变量的开启或关闭情况

                DBA:
                    开发DBA:
                        数据库设计,sql语句,存储过程,触发器
                    管理DBA:
                        安装,升级,备份,恢复,用户管理,权限管理,监控,性能分析,基准测试

                    数据类型:
                        数值型:
                            int
                            decimal
                            float,double,real
                        字符型:
                            char
                            varchar
                            text
                            blob
                        时间类型:
                            date
                            time
                            datetime
                    字符集:
                            utf8国际标准,对于有国外信息的存储的时候可以使用
                            gbk中国标准

                            mysql> show character set;查看mysql支持的字符集和排序规则
                            mysql> show collation;查看排序规则


                    查看当前选择了什么数据库
                        mysql> select database();
                        +------------+
                        | database() |
                        +------------+
                        | uplooking  |
                        +------------+
                        1 row in set (0.00 sec)
                    查看最后一条insert语句的id
                    mysql> select last_insert_id();
                    +------------------+
                    | last_insert_id() |
                    +------------------+
                    |                0 |
                    +------------------+
                    1 row in set (0.00 sec)

                SQL:
                    DML:数据修改语句
                        update
                        insert
                        delete
                        select
                    DDL:数据定义语句
                        create:
                            创建数据库
                            CREATE DATABASE db_name;
                            CREATE DATABASE db_name CHARACTER SET [=] charset_name COLLATE [=] collation_name; 
                            创建表
                            CREATE TABLE up01(id int not null  primary key,name varchar(20));创建表并自定义表的字段(结构)
                            CREATE TABLE up02 select * from up01;创建表,并把up01的数据也一并复制到新表当中,但是表的属性复制可能会有遗漏
                            CREATE TABLE up03 like up01;创建新表,并把up01的表的属性也一并复制过来,但是数据不会进行复制
                            engine = Myisam|innodb 创建表的时候可以选择存储引擎
                            auto_increment创建字段的时候可以使用自动增长规则(字段必须primary key(非空唯一字段))
                            SHOW CREATE DATABASESHOW db_name打印创建数据库的指令
                            SHOW CREATE TABLE table_name 打印创建表的指令
                        alter:修改表属性
                            alter database db_name character set gbk collate gbk_chinese_ci;修改数据库的字符集和排序规则
                            alter table up06 add(age int);给表添加一个字段
                            alter table up06 change age age2 varchar(20);修改表字段的名字和属性
                            alter table up06 modify age int(16);修改表字段的属性
                            alter table up06 drop age;删除表的字段
                            alter table up06 rename up111;给表重命名
                        drop:删除
                            drop database db_name删除数据库
                            drop table table_name删除表

© 著作权归作者所有

共有 人打赏支持
上一篇: mysql 日志和备份
下一篇: socket和pymysql
胡子叭槎
粉丝 22
博文 126
码字总数 133581
作品 0
成都
数据库管理员
私信 提问
MongoDB基础知识(一)

互联网行业的发展非常的迅速,数据存储以及架构优化方面也有很多不同的解决方案,例如关系型数据库、非关系型数据库、数据仓库技术等。更多数据库类产品的出现,为我们很好的解决了数据存储的...

tianya1993
2017/05/29
0
0
NoSQL数据库 Cassandra(一)

随着互联网技术的发展,对数据存储的要求越来越高,在容量、安全性、备份、高可用性等方面都有很高的需求,很受欢迎的关系型数据库有SQLServer、MySQL、Orcale等,非关系型数据库有key、val...

tianya1993
2017/10/26
0
0
「MySQL」MySQL基础知识及数据库安装

一、MySQL数据库基础知识 概念 MySQL是一款开源、跨平台的关系型数据库管理系统(DBMS,Database Management System)。关系型数据库将数据存放在结构化的一个或多个表中,表之间相互关联,反应...

陌问MW
09/30
0
0
聊聊python爬虫开发入门的必备技能

关于爬虫,相信有不少同学都接触过。譬如你通过百度搜索“慕课网”,然后跳转到慕课网的首页,这里你访问的百度首页就用到了爬虫技术,它把慕课网的首页源代码爬取到了搜索引擎服务器中,进行...

NavCat
07/02
0
0
新书出版 |《数据库程序员面试笔试宝典》

新书出版 《数据库程序员面试笔试宝典》 新书出版 《数据库程序员面试笔试宝典》 书名: 数据库程序员面试笔试宝典 作者:李华荣 定价: 69.00元 出版社名称: 机械工业出版社 出版时间: 2018年...

小麦苗
08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

序列化与反序列化实现

一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象序列化之后得到的字节序列,主要有两种用途:   1) 把对...

狼王黄师傅
19分钟前
0
0
Spring boot 各种常用注解总结(不断完善中)

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、...

覃大光
20分钟前
2
1
《让家庭教育回归生活》读书笔记3000字范文

《让家庭教育回归生活》读书笔记3000字范文: 以前,只知道新东方是教英语的,也培训挖掘机司机,一直不知道他们还研究家庭教育。读了《让家庭教育回归生活》一书,才知道他们的家庭教育高峰...

原创小博客
32分钟前
3
0
spring学习笔记(二)spring 事件的使用

spring 中的事件 spring事件通过订阅发布 可以解耦操作 可以同步 可以异步 步骤 编写事件 通过继承org.springframework.context.ApplicationEvent 来编写事件 public ApplicationEvent(Obj...

NotFound403
昨天
15
0
特斯拉车主成功破解了自己Model 3汽车

据汽车博客Electrek消息,一位特斯拉车主成功破解了自己Model 3汽车,还在此基础上运行了Ubuntu。 这位叫trsohmers的网友表示,“功劳大多要归到Ingineerix的头上,他花了数月才找到初始的那...

linuxCool
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部