文档章节

关系型数据库mysql 基础知识

胡子叭槎
 胡子叭槎
发布于 2016/11/07 23:27
字数 1488
阅读 24
收藏 2
点赞 0
评论 0

关系型数据库
    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删除表

© 著作权归作者所有

共有 人打赏支持
胡子叭槎
粉丝 21
博文 126
码字总数 132913
作品 0
成都
数据库管理员
NoSQL数据库 Cassandra(一)

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

tianya1993
2017/10/26
0
0
MongoDB基础知识(一)

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

tianya1993
2017/05/29
0
0
聊聊python爬虫开发入门的必备技能

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

NavCat
07/02
0
0
Inside MySQL Group社区启用新LOGO

新LOGO的含义 随着IMG社区的不断壮大和健康发展,IMG社区在MySQL相关技术领域逐渐渗透,已经形成了极大的影响力。有鉴于此,我们决定重新设计一个全新的LOGO,以便以新LOGO制作一些文化用品和...

lalor
2017/07/13
0
0
mysql基础知识

mysql基础知识 ——以下内容摘自马哥教育 === mysql是数据管理服务程序软件,用于管理数据。mysql是关系型数据库管理系统,C/S架构,服务端和客户端之间使用mysql协议进行通信,oracle,memc...

zhuhc1988
2016/12/26
0
0
大数据时代下,我们的数据谁来管理?

大数据时代下,数据的重要性,相信大家都知道。 去年的华为操作失误事件,我相信大家都看到过。 在如今的大数据时代,数据已经被相当慎重的对待,不夸张的说,这是公司的命脉。 那么我们的数...

黄色橙子
05/28
0
0
数据库的选择(二)

数据库如何选择 常用的数据库一般是分为五种:(一)、Access(二)SqlServer(三)MySQL(四)Oracle(五)SQLite,那么,用户想做一个网站,到底哪一种数据库是适合自己的呢?以下给大家介绍一下常用的...

-wangming-
2015/09/08
300
0
MongoDB距“干掉”MySQL登上王位还有多远

  【IT168 资讯】几十年来,关系型数据库已经成为企业应用程序的基础,自从MySQL在1995年发布以来,深受企业的偏爱。然而随着近年来数据量和数据的不断激增,非关系数据库技术如MongoDB应运...

it168网站
2017/12/19
0
0
干货系列1:Java互联网网站开发工程师 的技术提高与晋升路线(技术专精)

前几天写了自己对于Java软件开发工程师职业发展规划方面的一些感悟,陆续收到一些反馈,希望我能再就Java工程师不同的开发(职责)方向谈谈职业发展问题。(上一篇:Java软件开发工程师的自我...

半饱即好
06/26
0
0
Linux运维MySQL必会面试题100道

老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口是否运...

老男孩oldboy
2017/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
11分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
35分钟前
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
4
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0
将博客搬至CSDN

AHUSKY
今天
2
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部