Mysql详解:
MariaDB介绍:
mysql逻辑架构
第一层:连接处理,授权认证,安全
每个客户端连接都会拥有一个线程,这个连接查询都会在这一个单独的线程中执行,该线程指挥在某个cpu核心或者cpu中执行,服务器会负责缓存线程,所以不需要为每一个新建的连接创建或者销毁线程
客户端连接服务器时,服务器需要对其进行认证认证基于用户名。
mysql5.5以上版本提供一个API,支持线程池(Thread-Pooling)插件,可以使池中少量的线程服务大量的连接
第二层:查询解析,分析,优化,缓存以及所有的内置函数(日期,时间,数学加密函数),所有跨存储引擎的功能都在这一层:存储过程,触发器,视图
mysql会解析查询,并创建内部数据结构(解析树),对其进行优化,包括重写查询,决定表的读取顺序,选择合适的索引,用户可以通过特殊的关键字提示hint 优化器,影响他的决策过程,也可以请求优化器解释(explain)
优化器并不关心使用什么存储引擎,但是存储引擎对于优化查询有影响,优化器会请求存储引擎提供容量或具体操作开销信息,以及表数据的统计信息,某些存储引擎的某种索引会对一些特定的查询有优化
select语句查询解析的之前,服务器会先检查缓存,如果能够在其中找到对应的查询,服务器就不会执行查询解析,优化和执行的整个过程,而是直接返回查询缓存中的结果集
第三层:存储引擎:负责mysql数据存储和提取,服务器通过API与存储引擎进行通信,这些接口平不了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明,存储引擎API包含几十底层函数,用于执行 例如开始一个事务,或者根据主键提取一条记录,但是存储引擎不会解析sql,不同的存储引擎之间也不会相互通信,而只是简单的响应上层服务器的请求
ubuntu直接安装
执行以下命令:
apt install mariadb-server
ubuntu源码安装
https://downloads.mariadb.org/mariadb下载最新版本的软件包放到需要安装的目录:例子opt
安装依赖环境:
apt install make cmake gcc ncurses-dev g++ -y
cd /opt
tar -zxvf mariadb-10.5.5.tar.gz
cd mariadb-10.5.5
数据库初始操作
- 修改密码
- 创建数据库及表
- 增删改查
- 数据
1.修改密码:
通过进入数据库修改密码
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables
UPDATE mysql.user SET authentication_string = PASSWORD('123456'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit
sudo systemctl start mariadb
创建数据库及表:
创建数据库
mysq
3.增删改查:
对表进行增加,删除 ,修改,查询操作
1.insert into
insert into table_name values (字段1值,字段2值,...) #自增可不填写
2.delete
delete from table_name where name = root
3.update
update table_name set name=xixi,age=18 where name = root
4.select
select * from table_name #查看全部内容
select name,user from table_name #查看 name user字段
3.数据库备份:
1.使用mysqldump全量备份
备份整个数据库:
mysqldump -u root -p test > /root/testdb.sql #本地备份
mysqldump -u root -h IP -p test > /root/testdb.sql #远程备份 -h 远程连接到别的机器数据库进行备份
备份某个数据库的某个表:
mysqldump -u root -p test runoob_tbl > /root/testdb.sql #
备份多个数据库:
mysqldump -u root -p --databases test mysql > db.sql #备份test mysql 数据库
备份所有数据路
mysqldump -u root -p --all-databases > alldb.sql
数据还原:
mysql -u root -p < backup.sql
或者
mysql -u root -p #进入数据库
use test #选择数据库
source backup.sql #sql文件是绝对路径