MySQL数据库

 

数据库简单的分为两种:

1.关系型数据库-->MySQL和Oracle postgresql

2.非关系型数据库--->Memcached 和 Redis

3.搜索引擎数据库: ElasticSearch

4.时间序列数据库: LnfluxDB

5.列数据库:hbase

6.图形数据库: mongodb

 

每个表都会自定义主键。主键会

MySQL的配置文件 /etc/

 

什么叫做关系型数据库?SQL数据库

    数据和数据之间是有关系的。通过关系能够将一些列数据都提取出来。

    所谓关系类型:就是因为数据库的数据之间存在关联关系,因此才成为关系型数据库。关系型数据库可以通过一条数据关联出一堆数据,如此一来,方便数据的检索和查询,提高开发人员的查询效率,但是会拖累数据库美因茨关系型数据可不支持太高并发。

射门么是非关系型数据库?NoSQL数据库

 

关系型数据库MySQL和Oracle有什么区别?

    其实,这两类数据库在使用方式上,答题是没有太多区别的。都是局域SQL查询方式的数据库。但是Oracle是闭源的,也就是收钱的,收了钱自然就好办事,除了问题,有人管。因此,运维并不需要花太多精力在Oracle上。要学,去企业学。

    MySQL呢? 是开源的,免费用的,免费的东西自然是需要我们运维来维护的,但是永昌来说,真正的数据库维护人员的职位叫做DBA=database administrator,它并不是广泛意义上的运维,只是数据库专业运维,对于广泛意义上的韵味维护人员来说,我们在2万薪资一下只需要简单了解MySQL.

 

市面上还有一种数据库,关系型的,叫做MariaDB,它和MySQL有什么关系呢? 

     MySQL数据库最早是开源的,当然现在也是开源的。但是,MySQL已经被Oracle公司==>SUN,被它收购了

     那么,MySQL运维社区的人,为了防止SUN公司对MySQL进行闭源操作,他们自主在MySQL最后一个开源版本的基础上,开发出来一个分支数据库,叫做MariaDB其实,它和MtSQL是几乎一样的。因此,以后遇到这个数据库不要紧张,

 

B/S架构模式与C/S架构模式的区别?

B/S ==> Web/Server

 用户通过Web浏览器打开输入域名就能访问服务器Server的方式叫做B/S用户不需要安装任何东西

C/S==> Client/Server

 所谓客户端Client在用户的电脑里是需要下载并安装的。

 

编译安装 MySQL

 

安装 ncurses-devel 与 cmake 包

yum -y install ncurses-devel  安装支持包

tar xf cmake-2.8.6.tar.gz -C /usr/src/    解包

cd /usr/src/cmake-2.8.6/   进入目录

yum -y install gcc gcc-c++ make autoconf   安装cmake

./configure && gmake && gmake install  编译

 

编译MySQL

tar xf mysql-5.5.22.tar.gz -C /usr/src/  解包

cd usr/src/mysql-5.5.22/    进目录

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

---------------->>><<<----------------

MySQL目录

 


mysql 如何区分中文和数字_MySQL



my.cnf 配置文件相关介绍,在 mysql 解压路径 support-files/下提供的模板

路径: /usr/local/mysql/support-lifes/my-*

my-huge.conf                                巨大数据量

my-innodb-heavy-4G.cnf              innodb 引擎

my-large.cnf                                  大数据量

my-medium.cnf                            测试使用

my-small.cnf                                 小数据量

创建修改 my.cnf配置文件模板: /bin/cp   /usr/local/mysql/support-files/my-medium.cnf    /etc/my.cnf

复制启动脚本:/bin/cp   /usr/local/mysql/support-files/mysql.server   /etc/init.d/mysqld

加入开机启动: chkconfig mysql  --add

                        chkconfig  mysql  --list

添加到环境变量里:echo "export PATH=$PATH:/usr/local/mysql/bin*  "  >> /etc/profile

执行 mysql_install_db  脚本初始化数据库

/usr/local/mysql/scripts/mysql_install_db   --user=mysql  --basedir=/usr/local/mysql   --datadir=/usr/local/mysql/data/

启动 MySQL 服务,并查看运行状态

  /etc/init.d/mysql   start

MySQL账号由两部分组成

 账户名@登录IP

mysql -u 指定登录账号

           -p 指定密码(不写就是空密码登录)

           -h 指定主机(指定IP)

           -p 指定端口 

 

 

给MySQL设置密码

mysqladmin  -uroot  password  '000000'

show 查看  databases;  看小库

show  grants  for  ''@'';  查单独用户

show  grants   默认看当前用户

use  mysql  将对象设定成 mysql这个小库

show tables; 查看该库的表

create  database yunjisuan;  创建一个叫yunjisuan的库

库的本质就是子目录

drop  database yunjisuan;  删除一个叫做yunjisuan的库

create table  users  (user_name  char(20) not null,user_passwd char(30) default' ',primary key (user_name));    =====> 创建一个表

 

create ===> 创建

drop ===> 删除

use  ===>切换库

show ===>查看

以上为 管理命令

 

select ===> 读

select  字段名  from  空间名.表名

\G  把横向数据变成竖着的

 

四种对表数据进行操作的SQL语句

增:insert into  表名[字段名] values 具体数值

   例: insert  into  uses  values  ('xiaohong','000000');

删:delete  表名  where 条件

   例:delete  from  uses  where  user_name='baibai'

改:update 表名 set  字段=‘数值’

   例:update  uses set  user_passwd='666666'  where  user_name='baibai'

查:select  字段名  from  表名  

   例:select  *  from  uses;

小库其实就是data目录下的子目录,开发小库叫做空间,小库的名字叫做空间名,空间名,表名

flush privileges; ===> 刷新,立即生效 

desc yunjisuan,users;  查看表结构

insert into 空间名.表名(字段名1,字段2)values('值1','值2')

insert into yunjisuan.users(user_name,user_passwd) values ('小红',‘66666’);

update  空间名.表名  set 字段名='值'   ====> 更新

update yunjisuan.users set user_passwd='888'   wbere user name='田小绿' ;

delete  from yunjisuan.users where user_name='田小绿'  删除 

update  mysql.user  set  password=password('123123')  where  user='root'; 修改 MySQL登录 root账户 密码为 123123   

 

用户权限 grand

mysql的账号分为两部分

一个是用户名,一个是登录IP   '用户名'@'登录IP'

show grants  看当前用户的权限

show grants  for 'yunjisuan'@'xxx.xxx.xxx.xxx' 查其他用户的权限 

创建账号:grant all no *.*  to 'root@192.168.127.135' IDENTIFIED BY '123123'

all===> 指的是所有查看的类型 比如 select、delete、update、insert 等等

*.*   ===>第一个*指的所有的库第二个*指的是所有的表

to===>   将to 前面所有的库所有的表的all权限附给to后面这个账号

撤销用户权限

revoke select on mysql.user from '  '@'  ';

MySQL 通配符

_ : 任意单个字符

%:任意长度的任意字符

    例: grant  all  on  *.* to  'yunjisuan'@'%'  identified  by '123123';  代表任何IP 都可登陆

 

数据索引的分类

    1.普通索引:这是最基本的索引类型,而且没有唯一性之类的限制

    2.唯一性索引:与普通索引基本相同,区别在于:因所列的所有值都只能出现一次,即必须为一,但可为空。

    3.主键:是一种特殊的索引,必须指定为“PRIMARY KEY”,具有唯一性的同时不能为空

    4.全文索引:MySQL从 3.23.23版本开始支持全文索引和全文检索。在MySQL中,全文索引的类型为FULLTEXT,全文索引可以在VARCHAR或者TEXT类型的列上创建。贴吧的文本内容,和一些小型的网站网页内容,存放在数据库中即为全文索引模式。

    5.单列索引与多列索引:索引可以是但裂伤创建索引,也可以是多列上创建的索引。

 

 

事物的ACID特点

事物具有四个属性:ACID

            原子性(Atomicity)

            一致性(Consistency)

            隔离性(lsolation)

            持久性(Durability)