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)
posted @ 2018-11-23 16:53  枫。落葉  阅读(476)  评论(0编辑  收藏  举报