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)