标签:传递 show sql语句 cal 改变 命令 ids 表数 锁表
CentOS7环境下安装
获取mysql:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
查看可安装的mysql版本:
yum repolist enabled|grep mysql
安装命令:
yum install mysql-community-server
systemctl enable mysqld
systemctl start mysqld
mysqladmin -u root password passwd
mysql -uroot -p
root账户登录Mysql
MySQL登录方式
TCP/IP方式(最常用):
mysql -uuser -ppasswd -h IP -P 3306
Socket方式(本地):
mysql -uuser -ppasswd -S /tmp/mysql.sock -P 3306
3.数据物理存储结构
1)、库物理存储结构
OS系统的文件系统目录存储。
2)、表的物理存储结构,MySQL存储引擎
InnoDB是mysql的一种存储引擎,除了innodb还有其它的,例如isam,myisam等。
InnoDB是其中的一种存储引擎,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度。特色在于支持并发与表间引用。主要是事务表,当一个事务全部完成,才会执行update。mysql5.5后的版本,默认都支持InnoDB。
InnoDB引擎的表:
-rw-rw---- 1 mysql mysql 8895 4月 12 2018 default.frm
-rw-rw---- 1 mysql mysql 114688 4月 12 2018 default.ibd
default.frm:存储列相关信息
default.ibd:数据行+索引
Myisam引擎的表
-rw-r----- 1 mysql mysql 10816 Apr 18 11:37 user.frm
-rw-r----- 1 mysql mysql 396 Apr 18 12:20 user.MYD
-rw-r----- 1 mysql mysql 4096 Apr 18 14:48 user.MYI
user.frm:存储列相关信息
user.MYD:数据行
user.MYI:索引
3)、表的段、区、页
表:一个表就是一个段,可包含多个区;
区:64个连续的页,默认1M
页:最小的存储单元,默认16K
用户管理
查询数据库中所有用户:
SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;
select host,user,password from mysql.user \G
查询数据库中某个用户权限:
show grants for ‘user‘@‘%‘;
权限
grant赋予权限,常用权限有All、Select、update、insert等。
grant all on ku.* to ‘user‘@localhost identified by ‘passwd‘;
grant all on ku.* to ‘user1‘@‘%‘ identified by ‘passwd‘;
grant select,update,insert on ku.* to ‘user2‘@‘%‘ identified by ‘passwd‘;
其中“%”表示远程权限。
revoke表示撤销权限,用法如下:
revoke all on ku.* from ‘user‘@‘%‘;
revoke delete,insert on ku.* from ‘user1‘@‘%‘;
命令常用参数
mysql 常用参数:
-u 用户
-p 密码
-h IP
-P 端口
-S socket文件
-e 免交互执行命令
< 导入SQL脚本
本地管理员root密码忘记处理
# mysqld_safe --skip-grant-tables --skip-networking &
mysql> flush privileges;
mysql> alter user root@‘localhost‘ identified by ‘123456‘;
# pkill mysqld
# systemctl start mysqld
mysqldump -d dbname -u root -p > dbname.sql
导出多个库结构:
mysqldump -d -B db1 db2 -u root -p > dbname.sql
2).导出一个库数据:
mysqldump -t dbname -u root -p > dbname.sql
导出多个库数据:
mysqldump -t -B db1 db2 -u root -p > dbname.sql
3).导出一个库结构和数据:
mysqldump dbname -u root -p > dbname.sql
导出多个库结构和数据:
mysqldump -B db1 db2 -u root -p > dbname.sql
5.2 表操作:
1).导出一张表数据:
mysqldump -t dbname table1 -u root -p > dbname.sql
导出多张表数据:
mysqldump -d -B dbname --tables table1 table2 -u root -p > dbname.sql
2).导出一张表数据和结构:
mysqldump dbname table1 -u root -p > dbname.sql
导出多张表数据和结构:
mysqldump -B dbname --tables table1 table2 -u root -p > dbname.sql
5.3 存储过程和函数操作:
1). 只导出存储过程和函数
mysqldump -uroot -p -ntd -R --set-gtid-purged=OFF dbname > dbname.sql
--set-gtid-purged=OFF 这个选项控制是否要用gtids来恢复,默认开启的
-ntd 不导出结构和数据
-R 导出函数及存储过程。
-n:--no-create-db
-d:--no-data
-n:--no-create-info
-R:functions and procedures
2). 导出所有,导出数据、数据结构、存储过程、函数
mysqldump -uroot -R dbname -p > dbname.sql
存储过程:
show procedure status;
show create procedure pro_create_exo_order;
5.4 导入恢复:
mysql -u root -ppasswd ku < /root/ku.sql
mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz
参数说明:
-B:--databases,导出数据库列表,单库可省略
-F:刷新日志
-R:--routines导出存储过程及自定义函数
-x:锁表
-t:--no-create-info只导出数据,而不添加create table语句
-n:--no-create-db只导出数据,而不添加create database语句
-d:--no-data不导出任何数据,只导出库表结构
--tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时不导出结构和数据可使用-ntd
③只导出存储过程和函数可使用-R -ntd
④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d
--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点pos信息
标签:传递 show sql语句 cal 改变 命令 ids 表数 锁表
原文地址:https://blog.51cto.com/10874766/2428606