[toc]
MariaDB or MySQL
DBMS: 数据库管理系统,只是一个程序,而非数据
RDBMS: 关系型数据库管理系统
C/S: 专有协议
关系模型: 表(行,列) 组成的二维关系
范式:第一范式、第二范式、第三范式
关系运算:
选择
投影
数据库: 表,索引,视图(虚表)
SQL: Structure Query Language (结构化查询语言)
DDL(数据定义语言),DML(数据操纵语言,操作表中的数据)
编程接口:
存储过程
存储函数
触发器
事件调试器 (Event scheduling)
过程式编辑: 选择、循环
三层模型:
物理层(一张表,或者多张表,表现为一个文件)
逻辑层(表,索引,视图,等等)
视图层(最终用户所看到的样子,授权用户所看到的)
做为DBA需要: 设计/创建表 设计/创建索引 设计/创建视图
数据库的导入导出等
解决方案:
付费: Oracle ,Sybase ,Infomix(IBM) ,DB2(IBM)
开源: MySQL ,MariaDB ,PostgreSQL , SQLite(是一种嵌入式的解决方案)
目前MySQL已经被Oracle收购
有三成把握的时候,就要争取。不然机会就错过了,但要做好充份准备。
没有谁好谁坏,只要向往自己的理想就好了。
MySQL --> 5.1 --> 5.5 --> 5.6 --> 5.7
MariaDB
插件式存储引擎(支持众多类型的存储引擎)
MySQL是否支持事物,则需要查看存储引擎是否支持事物
单进程多线程
连接线程
守护线程
MariaDB [mysql]> SHOW ENGINES ;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)
MySQL配置文件:集中式的配置,能够为mysql的各应用程序提供配置信息
[mysqld] 专用于mysqld应用程序
[mysqld_safe] 线程安全的mysqld专有配置
[mysqld_multi] 多实例共离的mysql
[server] 只要有是mysql服务端的都有效的
[mysql] mysql客户端的
[mysqldump] 数据导入导出的
[client] 对于客户端工具的
parameter = value 支持_ - 两种
skip-name-reslove
skip_name_reslove 两种方式都是可以的
mysql启动时查找路径
/etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf
--> default-extra-file=/path/to/somdir/my.cnf --> ~/.my.cnf
后找到的,行会覆盖先找到的,于是,越住后的是,越是先生效
安装方法
os vendor: rpm ubuntu最成功的领域在桌面
服务器建议使用CentOS, SUSE,OpenSUSE,Debian等等
Debian 要求技术能力偏高
MySQL:
rpm
展开可用,一般安装就用的这种方式
源码,源码安装时需要对代码打布丁,对MySQL订制
安装后的设计:
(1)为所有root用户设定密码
mysql> SET PASSWORD
mysql> update mysql.user SET password= PASSWORD('your_pass') WHERE cluase;
mysql> FLUSH PRIVILEGES ;
# mysqladmin 用这个命令来修改
(2) 删除所有匿名用户
mysql> DROP USER ''@ 'localhost';
上术两步骤可运行命令: mysql_secure_installation
(3) 建议关闭主机名反解功能
元数据数据库: mysql
user,host 等
mysql 客户端工具 mysql