MySQL基本概念跟常用命令

MySQL基本概念和常用命令


1 MySQL简介

引用

Mysql是1985几个瑞典小伙开发的,后来他们成立啦Mysql AB公司,他们当时开发mysql的初衷是为零售商提供数据仓库服务,这也是为什么mysql擅长查询而不是事务处理原因啦,所以他们设计啦一个利用索引顺序存储数据的方法,也就是ISAM存储引擎算法,后来发展为MyISAM存储引擎。mysql具有高性能,高可靠性,易用性等特点,主要适合web网站系统,日志记录系统,数据仓库系统,和嵌入式系统

2.Mysql架构组成

引用

mysql的物理组成:日志文件,数据文件,Replication相关文件,其他文件

引用

mysql server的系统架构: SQL Layer和 Storage Engine Layer

引用

Mysql自带工具介绍mysqladmin命令

#ping 命令查看server是否正常提够服务

mysqladmin -uroot -proot -h localhost ping

#status命令查看当前msyql server的几个状态值

mysqladmin -uroot -proot -h localhost status

#processlist命令获取当前数据库连接线程信息

mysqladmin -uroot -proot -h localhost processlist


3.MySQL 插件式储存引擎介绍

引用

MyISAM引擎的每一个表都被存放为以表名命名的三个物理文件:tableName.frm,tableName.MYD,tableName.MYI

支持三种索引: B-Tree, R-Tree, Full-text(B-Tree,解决like查询低效问题)

引用

InnoDB储存引擎特点:支持事务安全,数据多版本读取,外键支持



4 MySQL安全管理

引用

Mysql的权限信息主要储存在几个被称为grant tables的系统表中,即mysql.User, mysql.db, mysql.host, mysql.table_priv, 和 mysql.column_priv,每次手工修改权限表之后要运行’FLUSH PRIVILEGES’, 如果通过Grant, Revoke, Create user或者Drop user命令调整权限,不需要调用’FLUSH PRIVILEGES’

引用

#查看某个用户目前拥有的权限,可以使用如下命令查看或者直接查询权限表

root@localhost : mysql> show grants for ‘username’@’hostname’

引用

Mysql的权限分为5个级别:Global,Database,Table, Column, Routine Level,权限优先级依次下降

引用

Global Level的权限控制是指全局权限控制,所有权限信息保存在mysql.user表中

创建用户: create user  ‘test’@’localhost’ IDENTIFIED  by ‘test’;

root@localhost : mysql> Grant select, update, delete, insert on *.* to ‘test’@’localhost’;

引用

Database Level权限控制

root@localhost : mysql> grant alter on test.* to ‘test’@’localhost’

引用

Table Level权限控制:

root@localhost : mysql> grant index on test.t1 to ‘test’@%.walmart.com

引用

Column Level权限控制,需要在权限名称后面将要授权的列名通过括号括起来

root@localhost : mysql> grant select(id,value) on test.t2 to ‘test’@’%walmart.com’

引用

Routine Level 权限控制只有execute 和alter routine两种,主要针对procedure 和 fuction

root@localhost : mysql> grant execute on test.p1 to ‘test’@’localhost’;

4.mysql 备份和恢复

引用

mysql 备份包括逻辑备份和物理备份

引用

逻辑备份:

1 生成INSERT语句备份,在mysql运行的状体下想要取得某个时间点的备份,只有以下两种情况

(i)同一时刻取出所有数据,需要添加–single-transaction选项

root@localhost : mysql> mysqldump –single-transaction dbname

(ii)是数据库数据处于静止状态,添加–lock-all-tables选项

2 生成特定格式的纯文本备份数据文件

root@localhost:mysql> select * INTO outfile ‘dump.txt’ fields terminated by ‘,’ optionally enclosed by ‘”‘ lines terminated by ‘\n’ from tableName;

或者

root@localhost:mysql> mysqldump -uroot -proot -T/D:/mysqldump test test_outfile –fields-enclosed-by=\” –fields–terminated-by=,

引用

还原逻辑备份

(i)如果是insert语句的逻辑备份

a: mysql -uroot -p < backup.sql

b: root@localhost:mysql> source /tmp/backup.sql

(ii)如果备份是以特殊分割符分割的纯数据文本文件

MySQL基本概念跟常用命令

相关文章:

你感兴趣的文章:

标签云: