MariaDB数据库管理(一)

MariaDB
关系型数据库管理类型:RDBMS,大部分为C/S架构。
关系模型:表和关系不能等同。表(行,列组成的二维关系)
范式:第一范式,第二,第三范式
关系运算:选择和投影,选择就是从一个表中挑选出符合的行,投影挑选出所期望的列
核心基本概念:数据库是由众多表组成,糅合众多表后称为数据库,而围绕表有很多组件,比如索引,索引是按照特定的数据结构组织起来的表中某个或些字段数据,所以一个表中可以有很多索引,索引就是将表中某些特定的段抽取出来,一般而言有特定的规律,比如b+树
索引主要目的是为了加强数据查询操作的
视图,也就是虚表。
SQL:Structure Query Language
DDL:数据定义语言,DML:数据操纵语言(操纵表中数据)。

编程接口:
内部定义代码块。内建函数。
用户也可以自定义函数;
存储过程:没有返回值的函数
存储函数:又返回结果的代码片段

如果一段代码对数据做了处理以后,没有做任何返回,仅仅是做数据加工,通常称为一个过程。如果对数据加工后有返回值,能调用,能返回的话,这种通常称为函数,有输入有输出。

编程接口还可以定义触发器:特殊事件发生时,满足条件后触发。
事件调度器:定期执行内建任务,从而完成周期操作等
过程式编程:支持选择,循环等等

三层模型:
物理层:表现在文件系统,或设备上的样式
向上一层,逻辑层:表,索引,视图,内建组件等等等
视图层:最终用户所看到的样子

Mysql在07被sun以10亿美金收购,sun为了补全自己公司产品,sun有应用程序,有系统,就缺少一个数据库系统,意图构建一个完整的产品线而翻身,sun一直的管理理念完全没有技术的一半,迄今为止,计算机领域有很多技术都是由sun贡献。然而sun收购mysql后,却成了压垮sun的最后一根稻草。本来财务状况已经不佳,收购mysql后不但没有翻身,反而拖垮整个财务状况。Sun在国际上寻求收购,起初准备买向IBM,IBM是有整套系统的公司,sun到IBM手里无非就是变相的捏死一个竞争对手而已。但sun最终被oracle以73亿美金收购,oracle并没有成熟的硬件和操作系统,所以卖给oracle能够让血脉延续。随着sun的投入oracle怀抱,mysql成了陪嫁丫头!

版本:
Mysql,MariaDB,PostgreSQL,SQLte

Mysql存储引擎查看
MariaDB [(none)]> SHOW ENGINES;

Mysql单进程多线程,连接线程和守护线程

Mysql配置文件:集中式配置文件,能够为mysql各应用程序提供配置信息
[mysqld] 专用于mysqld服务
[mysqld_safa] 线程安全的mysql专用
[mysqld_multi] 多实例共享模型的mysql
[server] 服务器程序
[mysql] 客户端
[mysqldump] 数据备份导入导出工具
[client] 都有效

Parameter = value
Mysql中下划线和中线有些需要区分有些则不需要区分
Skip-name-resolve& Skip_name_resolve

Mysql也支持大量命令行选项

MYSQL配置文件查找路径:
/ETC/MY.CNF-/ETC/MYSQL/MY.CNFMYSQLHOME路径下/MY.CNF编译安装时指定的—DEFAULT-EXTRA-FILE=/PATH/TO/SOMEDIR/MY.CNF,最后找当前用户的家目录隐藏文件.MYSL.CNF

MYSQL的安装方式:
1,OS VENDOR YUM安装
2,展开既可以方式
3,RPM包安装方式
4,源码编译安装方式

安装后设定:
为所有ROOT用户设定密码。
(一)设置密码
1, MYSQL >SET PASSWORD 自动触发授权表
2, MYSQL > update mysql.user SET password=PASSWORD(‘your_pass’) WHERE clause; 在内存中进行认证,必须手动重读配置文件
3, #mysqladmin 设置
(二)删除所有匿名用户
Mysql > DROP USER ‘ ’@’localhost’;

上述两个步骤可运行命令:mysql_secure_installaton来实现
(三)建议关闭主机名反解功能
元数据数据库:mysql
User,host等:

mysql命令行客户端程序,服务端mysqld
客户端程序:
Mysql:交互式CLI工具
Mysqldump:mysql数据导出工具,备份工具,基于mysql协议向mysqld发送查询请求,并将查询的来的所有数据转换成insert等写操作语句保存在文本文件中。
Mysqladmin:基于mysql协议管理mysqld
Mysqlimport:数据导入工具

非客户端管理工具:
Myisamchk:检测修复myisam表工具,myisampack打包工(打包后只为‘只读’)

如何获取MYSQL默认使用配置:
Mysql –print-defaults
Mysqld –print-defaults

[root@[node108] ~]# mysql --print-defaults
mysql would have been started with the following arguments:
--port=3306 --socket=/tmp/mysql.sock --no-auto-rehash

--no-auto-rehash这里禁用了mysql内部补全功能,这个补全有一个全新,每次我们链接数据库时,他不得不把数据库所有组件查询一编,做成一个hash表才能实现,所以这样就使得mysql链接mysql数据库时,随着mysql组件的增加mysql变得越来越慢

[root@[node108] ~]# mysqld --print-defaults
mysqld would have been started with the following arguments:
--datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --user=mysql --symbolic-links=0 --port=3306 --socket=/tmp/mysql.sock --skip-external-locking --key_buffer_size=256M --max_allowed_packet=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=8 --log-bin=mysql-bin --binlog_format=mixed --server-id=1
[root@[node108] ~]#

客户端类用户程序的可用选项。
-u ,--user= 指明用户
-h ,--host= 指明主机
-p ,--password= 指明密码
-P ,--prot= 指明端口
--protocol= 指明协议
-S ,socket= 指明套接字
-D ,--database= 切换为默认库
-C ,--compress 是否压缩

Mysql而言 –e选项,-e选项是不连接mysql,而执行sql语句的
[root@[node108] ~]# mysql -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
[root@[node108] ~]#

Mysql交互模式:
可运行命令有两类:1,客户端命令,\h,help 2,服务端命令:sql语言,需要语句结束符;。

Mysql脚本模式:

mysql –Uusername -hHOST -Ppassword < /path/from/somefile.sql

Mysql > source /path/from/somefile.sql

Mysql服务器端工作特性(mysqld):
工作特性有多种定义方式:
命令行选项:
配置文件参数

获取可用参数
#mysqld --help --verbose

获取运行中的MYSQL进程使用各服务器参数及其值
Mysql > SHOW GLOBAL WARIABLES;
Mysql > SHOW SESSION VARIABLES;
注意:其中有些参数支持运行时修改,会立即生效;有些参数不支持,则只能通过修改配置文件,并重启服务器程序生效;
有些参数作用域是全局的,且不可改变;有些可以为每个用户提供单独的设置;

修改服务器变量的值:
Mysql > help SET 获取帮助语法

全局:
Mysql > SET GLOBAL system_var_name=value;
Mysql > SET @@global.system_var_name=value;
会话:
Mysql > SET [SESSION] system_var_name=value;
Mysql > SET @@[session.]system_var_name=value;

状态变量:用于保存mysqld运行中的自动统计数据的变量,是不可以更改的
Mysql > SHOW GLOBAL STATUS;
这里面包括众多数据包括运行的命令,包括访问,包括连接等等等!在后面文章中将会提到.
Mysql > SHOW SESSION STATUS;

0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2015-06-17分类: Mariadb

标签: mariadb

发表评论

已有 3 条评论

加载中,请稍候...
  1. 菠萝格格
    June 18th, 2015 at 07:07 pm

    嗨 我想收录你的博客 不知道你愿意给博客志投稿吗?(投稿有惊喜哦)博客志是一个用心推荐博客的部落格 用真挚的文字描述有个性的博客站点Plus,博客的主人在介绍自己的博客时一定是最用心的吧如果不知道写点什么 能告诉我您的邮箱吗?我们来一个访谈怎么样?

    1. _老白兔
      June 18th, 2015 at 08:00 pm

      163的邮箱:用户:usertzc

  2. 歪妖笑话
    October 23rd, 2015 at 04:23 pm

    网站不错,雁过留痕,欢迎互访!