• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL基本概念跟常用命令

mysql 搞代码 7年前 (2018-06-05) 126次浏览 已收录 0个评论

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)如果备份是以特殊分割符分割的纯数据文本文件
mysqlimport –user=name -password=pwd test / –fields-enclosed-by=/” –fields-terminated-by=, /tmp/test_outfile.txt

或者

load data infile ‘/tmp/test_outfile.txt’ into table test_outfile fields terminated by ‘”‘ enclosed by ‘,’;

引用
物理备份:
1. MyISAM 储存引擎的物理备份:
root@localhost:mysql> mysqlhotcopy db_name new_db_name

2. InnoDB储存引擎的物理备份:  使用ibbackup


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL基本概念跟常用命令

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址