数据库-----基本概述

数据库-----基本概述

一、数据库的版本

# 社区版、企业版、集群版

二、数据库的安装

1 二进制安装

$ yum -y install mysql-server
# mysql MySQL客户端程序和共享库
# mysql-server MySQL服务器需要的相关程序

2 源代码软件包

1) configure 、cmake

# configure     centos5.5之前的编译工具
# cmake 		 cen同时5.5之后的编译工具

2) 数据库的常用配置选项

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql ----指定安装路径(默认的就是/usr/local/mysql)
-DMYSQL_DATADIR=/data/mysql         ----mysql的数据文件路径
-DSYSCONFDIR=/etc               ----配置文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1     ----使用INNOBASE存储引擎
-DWITH_READLINE=1               ----支持批量导入mysql数据
-DWITH_SSL=system               ----mysql支持ssl
-DWITH_ZLIB=system              ----支持压缩存储
-DMYSQL_TCP_PORT=3306            ----默认端口3306
-DENABLED_LOCAL_INFILE=1          ----启用加载本地数据
-DMYSQL_USER=mysql              ----指定mysql运行用户
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock    ----默认套接字文件路径
-DEXTRA_CHARSETS=all             ----是否支持额外的字符集
-DDEFAULT_CHARSET=utf8            ----默认编码机制
-DWITH_DEBUG=0                 ----DEBUG功能设置

3)服务

$ mysql

4) 端口

# 3306

5) 主配置文件

# /etc/my.cnf

6) 初始化脚本

# mysqld_install_db

7) 启动命令

# mysqld_safe

8) 数据目录

# RPM包:/var/lib/mysql
# 源码包:安装路径/data

9) 套接字文件

# RPM包:/var/lib/mysql/mysql.sock
# 源码包:安装路径/data/mysql.sock
# 自定义:/tmp
# mysql.sock文件的路径要保证MySQL的进程有权限进行创建文件
# MySQL的进程需要对目录具有w权限,才能在目录内创建mysql.sock文件
# 当意外关闭数据库时,再开启时假如开启不了,找到这个,删除再启动重新生成套接字文件

10) 进程文件

# /var/run/mysqld/mysqld.pid

三、登录及退出MySQL环境

1 设置密码

$ mysqladmin -uroot password '123456'

2 登录数据库

$ mysql -uroot -p123456
# -p用户密码
# -h登录位置(主机名或ip)
# -P端口号(当更改3306默认端口时使用)
# -S套接字文件(/var/lib/mysql/mysql.sock)

3 退出

$ exit    &&    ctrl+d

四 MySQL语句

Mysql命令 功能
show databases; 查看服务器中当前有哪些数据库
use 数据库名; 选择所使用的数据库
create database 数据库名; 创建数据库
drop database 数据库名; 删除指定的数据库
MySQL命令 功能
create table 表名 (字段1 类型1,...); 在当前数据库中创建数据表
show tables; 显示当前数据库中有哪些数据表
describe 表名; 显示当前或指定数据库中指定数据表的结构(字段)信息
drop table 表名; 删除当前或指定数据库中指定的数据表
alter table 旧表名 rename 新表名; 修改数据表的名称
alter table 表名 modify 字段 新类型; 修改字段的类型
alter table 表名 change 旧字段名 新字段名 类型; 修改字段名
alter table 表名 add 字段 类型(first/after) 增加字段
alter table 表名 drop 字段 删除字段
MySQL命令 功能
insert into 表名(字段1,字段2,……) values(字段1的值, 字段2的值,……); 向数据表中插入新的记录
update 表名 set 字段名=新数据 where 条件表达式; 修改、更新数据表中的记录
select 字段名1,字段名2……from 表名 where 条件表达式; 从数据表中查找符合条件的记录
select * from 表名; 显示当前数据库的表中的记录
delete from 表名 where 条件表达式;between...and... 在数据表中删除指定的记录指定范围
delete from 表名; 将当前数据库表中记录清空
# 注:库和表的删除用drop,记录删除用delete

五、用户权限

1、grant授权:

# 格式:grant 权限1,权限2,...... on 数据库.数据表 to 用户@登录位置 (identified by ‘密码’);

2、revoke取消授权

# 格式:revoke 取消的权限1,取消的权限2,...... on 数据库.数据表 from 用户@登录位置;

3、查看权限

# 格式:show grants for 用户@登录位置;

六、备份和还原

1、mysqldump

1)备份:

# mysqldump -u 用户名 -p 数据库名  > /备份路径/备份文件名(备份整个数据库)
# mysqldump -u 用户名 -p 数据库名 表名 > /备份路径/备份文件名(备份数据表)
# --databases 库1,库2 (还原:mysql < 备份文件)
# --all-databases —备份服务器中的所有数据库内容

2)还原:

# mysql 数据库 < 备份文件

2、mysqlhotcopy

1)备份:

# mysqlhotcopy --flushlog -u=’用户’ -p=’密码’ --regexp=正则 备份目录

2)还原:

# cp -a 备份目录 数据目录(/var/lib/mysql)

七、补充的备份机制

1.日志备份

$ mysql> show global variables like '%log%'
# 列出mysql中和日志相关的变量

2.错误日志

# 服务器启动和关闭时的信息
# 服务器运行过程中的错误信息
# 从服务器启动从服务器进程时产生的信息
# log-error 错误日志的路径

3、一般日志(不启用)

# 记录用户对数据库的查询操作
# general-log=ON  启动一般查询日志
# log=ON 全局日志开关
# log-output 日志的记录类型

4、慢查询日志

# 记录需要较长时间的查询操作
# log-slow-queries=保存路径  启动慢查询日志,并设置个路径

慢日志

5、二进制日志

# 目地:通过记录数据的变化过程将完整数据进行备份,即使完整数据全部丢失,也可以通过所有的步骤,重新执行一遍,产生最后的数据状态

1)所有对数据库状态更改的操作(create、drop、update等)

# log-bin=位置 (启动二进制日志) mysql>  show binary logs  查看当前使用的二进制日志 mysql> show binlog events in '二进制日志文件名(mysql-bin.000s001)'查看二进制日志的内容

2)还原:(mysqlbinlog)

# a : 按时间还原:
# mysqlbinlog  --start-datetime ‘YY-MM-DD HH:MM:SS’ --stop-datetime ‘YY-MM-DD HH:MM:SS’ 二进制日志文件 | mysql(-uroot -p)   
# b : 按文件大小还原:
# --start-position --stop-position
# c :事务日志:记录事务相关的日志信息
# d:中继日志:记录从服务器的备份信息

3) 数据库的单机备份策略:

# mysqldump
# bin-log

4) 数据库的双机或多机备份策略

# bin-log

八、多机备份

# 主从配置:实时备份
# 主主配置:(互为主从)实时备份、负载均衡、高可用
# 多从一主:实时备份(更多的备份节点)(适合查询压力较高的)
# 多主一从:实时备份、节约成本
# 读写分离:数据备份、负载均衡
posted @ 2020-04-20 15:33  候你已久  阅读(71)  评论(0)    收藏  举报