MySQL数据库编译及入门

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目录
 
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)
相关文章
相关标签/搜索