mysqldump

MySQL经典面试题

巧了我就是萌 提交于 2020-02-12 03:14:55
MySQL经典面试题 1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; (2)、MySQL复制的线程有几个及之间的关联 MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程): 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log; 3. Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行; 4. 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator,只负责把 relay log 中的 binlog读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行; (3)

MySQL经典面试题

流过昼夜 提交于 2020-02-12 03:09:24
1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; (2)、MySQL复制的线程有几个及之间的关联 MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程): 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log; 3. Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行; 4. 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator,只负责把 relay log 中的 binlog读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行; (3)、MySQL如何保证复制过程中数据一致性及减少数据同步延时 一致性主要有以下几个方面

Mysql导出表结构及表数据 mysqldump用法

℡╲_俬逩灬. 提交于 2020-02-11 08:43:36
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出數據库為dbname某张表(test)结构 mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3、导出數據库為dbname所有表结构及表數據(不加-d) mysqldump -uroot -pdbpasswd dbname >db.sql; 4、导出數據库為dbname某张表(test)结构及表數據(不加-d) mysqldump -uroot -pdbpasswd dbname test>db.sql; 5、由条件导出數據库為dbname某张表(test)结构及表數據(不加-d)   mysqldump -uuser -ppwd -hhostname db table --hex-blob "--where=name" > db.sql; 1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql) mysqldump -uroot -pdbpasswd -d

Mysql导出表结构及表数据 mysqldump用法

假装没事ソ 提交于 2020-02-11 08:43:06
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql) mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出數據库為dbname某张表(test)结构 mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3、导出數據库為dbname所有表结构及表數據(不加-d) mysqldump -uroot -pdbpasswd dbname >db.sql; 4、导出數據库為dbname某张表(test)结构及表數據(不加-d) mysqldump -uroot -pdbpasswd dbname test>db.sql; 来源: https://www.cnblogs.com/mfryf/p/3488762.html

MySQL命令行导入导出

十年热恋 提交于 2020-02-11 08:00:05
导出数据库中所有的数据 mysqldump -uUserName -pPassword DatabaseName>FileName.sql 导出数据库中所有表的结构 mysqldump -uUserName -pPassword -d DatabaseName>FileName.sql 导出数据库中指定表的结构 mysqldump -uUserName -pPassword -d DatabaseName TableName>FileName.sql 导出数据库中指定表的部分数据 mysqldump -uUserName -pPassword DatabaseName TableName --where="condition">FileName.sql 导入数据 mysql>source path 导出到excel mysql>SELECT * INTO OUTFILE './test.xls' FROM TableName WHERE 1 ORDER BY ColumnName DESC LIMIT 0, 50; 来源: https://www.cnblogs.com/fengjunkuan/archive/2013/01/29/2881102.html

mysql数据库备份及恢复命令mysqldump,source的用法

我是研究僧i 提交于 2020-02-11 07:41:24
还原一个数据库:mysql -h localhost -u root -p123456 www<c:/www.sql 备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:/www2008-2-26.sql //以下是在程序中进行测试 //$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile"; $command="mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql"; system($command); echo "success"; ************************************************ 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 mysqldump -–add-drop-table -uusername

mysqldump - 备份 MySQL 数据库

ぃ、小莉子 提交于 2020-02-10 05:33:36
参考资料 备份 备份所有数据库中的所有数据(包括系统数据库) –all-databases 通过 --all-databases 选项备份所有的数据库: mysqldump -uroot -p --all-databases >/tmp/all.sql 备份指定数据库中的所有数据 –databases 通过 --databases 选项(只有一个数据库时可以省略)指定要备份的数据库,可以同时备份多个库,用空格分隔: mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql mysqldump --add-drop-table -uroot -p database_name > /home/backup/mysql/xx_bak_v1_1_3.sql 备份指定表 通过 --databases 选项指定数据库后,再用 --tables 选项指定具体的表(只备份一个数据库中的一个表时可以省略),可以同时备份多个表,用空格分隔: mysqldump -uroot -p --databases db1 --tables a1 a2 >/tmp/db1.sql mysqldump -uroot -p db1 t1 >/tmp/t1.sql 只导出表结构不备份数据 –no-data 通过 --no-data 选项可以只备份表的结构:

mysql数据库-进阶-长期维护

雨燕双飞 提交于 2020-02-08 01:49:08
############### 视图 ############## """ 1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 2. 视图是由基本表(实表)产生的表(虚表)。 3. 视图的建立和删除不影响基本表。 4. 对视图内容的更新(添加、删除和修改)直接影响基本表。 5. 当视图来自多个基本表时,不允许添加和删除数据。 1.创建视图 create view 视图名称 as sql 查询语句 2.使用视图 select * from 视图名称; 3.更新视图 alter view 视图名称 AS SQL语句 4. 删除视图 drop view ren_view; """ ############### 触发器 ############## """ 2.触发器-trigger 触发器:监视某种情况,并触发某种操作。 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 1.创建触发器语法 create trigger triggerName after/before insert/update

数据库——权限、备份、规范

删除回忆录丶 提交于 2020-02-05 09:57:41
数据库——权限、备份、规范 一、权限管理 1.可视化管理 2.SQL命令操作 -- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码' CREATE USER cm999 IDENTIFIED BY '123456' -- 修改密码 (修改当前用户密码) SET PASSWORD = PASSWORD ( '123456' ) -- 修改密码 (修改指定用户密码) SET PASSWORD FOR cm999 = PASSWORD ( '123456' ) -- 重命名 RENAME USER 原来名字 TO 新的名字 RENAME USER cm999 TO 2 cm999 -- 用户授权 ALL PRIVILEGES 全部的权限 , 库.表 -- ALL PRIVILEGES 除了给别人授权,其他都能够干 GRANT ALL PRIVILEGES ON * . * TO 2 cm999 -- 查询权限 SHOW GRANTS FOR 2 cm999 -- 查看指定用户的权限 SHOW GRANTS FOR root @localhost -- ROOT用户权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -- 撤销权限 REVOKE 哪些权限, 在哪个库撤销

MySQL逻辑备份

十年热恋 提交于 2020-02-05 04:56:07
我们一般采用 mysqldump 的方式,对于 mysql dump ,有两种备份方式,一种是形成恢复脚本,这个是默认的备份方式,还有就是生成行数据文件,将来采用 load data 加载数据,后者速度更快,因此对于逻辑备份,我们建议采用后者,就是 mysqldump -T 的方式   1 、 mysqldump 备份的时候,对于 myisam 表,我们采用 -l 的方式加锁备份,来保证数据的一致性,也可以采用 skip lock 的方式防止 myisam 表被加锁,但是可能带来数据的不一致性   2 、对于 inndb 表来说,通过 single transaction 的方式来获得一致性数据,主要原来采用的是 MVCC 特性,备份期间不锁表,还能够获得一致性数据   3 、对于 mysqldump ,我们不能获取到备份对应 binlog 起点,因此需要手工记录,具体的技巧就是在 mysqldump 的时候,加上 -F 选项,强制 binlog 切换,将来采用切换后的 binlog 作为恢复的起点,否则 mysqldump 的备份根本找不到恢复的起点   4 、 mysqldump 可以恢复单表,具体方法就是将 binlog 中不属于恢复表的操作过滤掉,只是过滤出来需要恢复的表对应的 SQL 语句 对于备份来说,我们有下面的几个技巧   1 、将备份卸载到从库   2 、使用