MySQL备份恢复之mydumper
###Download & Install mydumper.###
[root@zlm1 :: ~]
#wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
---- ::-- https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
Resolving launchpad.net (launchpad.net)... 91.189.89.223, 91.189.89.222
Connecting to launchpad.net (launchpad.net)|91.189.89.223|:... connected.
HTTP request sent, awaiting response... See Other
Location: https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz [following]
---- ::-- https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.229, 91.189.89.228
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.229|:... connected.
HTTP request sent, awaiting response... OK
Length: (43K) [application/x-tar]
Saving to: ‘mydumper-0.9..tar.gz’ %[===========================================================================================================>] , .6KB/s in .6s -- :: (67.6 KB/s) - ‘mydumper-0.9..tar.gz’ saved [/] [root@zlm1 :: ~]
#ls -l
total
-rw-------. root root Jul anaconda-ks.cfg
-rw-r--r-- root root Nov mydumper-0.9..tar.gz
drwxrwxrwx root root Jun : mysqlbinlog_flashback-master
-rwxr-xr-x root root Jun : mysqld.sh
-rwxr-xr-x root root Jun : mysql.sh
-rw-r--r-- root root Jul percona-xtrabackup--2.4.-.el7.x86_64.rpm
drwxrwxrwx root root Jun : pip-10.0.
-rwxr-xr-x root root Jun : pip-10.0..tar
drwxr-xr-x root root Jun : PyMySQL-0.8.
-rwxr-xr-x root root Jun : PyMySQL-0.8..tar
drwxrwxr-x root root Jun : Python-2.6.
-rwxr-xr-x root root Jun : Python-2.6..tar
-rw-r--r-- root root Jun : recover.sh
-rw-r--r-- root root May : rename_tb.sql
drwxrwxrwx root root Jun : setuptools-39.2. [root@zlm1 :: ~]
#gzip -d mydumper-0.9..tar.gz [root@zlm1 :: ~]
#tar -xf mydumper-0.9..tar [root@zlm1 :: ~]
#cd mydumper-0.9. [root@zlm1 :: ~/mydumper-0.9.]
#ls -l
total
-rw-r--r-- root root Nov binlog.c
-rw-r--r-- root root Nov binlog.h
drwxr-xr-x root root Jun : cmake
-rw-r--r-- root root Nov CMakeLists.txt
-rw-r--r-- root root Nov common.h
-rw-r--r-- root root Nov config.h.in
drwxr-xr-x root root Jun : docs
-rw-r--r-- root root Nov g_unix_signal.c
-rw-r--r-- root root Nov g_unix_signal.h
-rw-r--r-- root root Nov mydumper.c
-rw-r--r-- root root Nov mydumper.h
-rw-r--r-- root root Nov myloader.c
-rw-r--r-- root root Nov myloader.h
-rw-r--r-- root root Nov README
-rw-r--r-- root root Nov server_detect.c
-rw-r--r-- root root Nov server_detect.h [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-bash: cmake: command not found -- There's not cmake package in my system,install cmake first. [root@zlm1 :: ~/mydumper-0.9.]
#yum install cmake
-- Omitted. [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-- The C compiler identification is GNU 4.8.
-- The CXX compiler identification is GNU 4.8.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using mysql-config: /usr/local/mysql/bin/mysql_config
-- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib64/libpthread.so;/usr/lib64/libm.so;/usr/lib64/librt.so;/usr/lib64/libdl.so
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.7")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- checking for one of the modules 'glib-2.0'
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake: (message):
None of the required 'glib-2.0' found
Call Stack (most recent call first):
cmake/modules/FindGLIB2.cmake: (pkg_search_module)
CMakeLists.txt: (find_package) -- checking for one of the modules 'gthread-2.0'
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake: (message):
None of the required 'gthread-2.0' found
Call Stack (most recent call first):
cmake/modules/FindGLIB2.cmake: (pkg_search_module)
CMakeLists.txt: (find_package) -- checking for module 'libpcre'
-- found libpcre, version 8.32
-- Found PCRE: /usr/include CMake Warning at docs/CMakeLists.txt: (message):
Unable to find Sphinx documentation generator -- ------------------------------------------------
-- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
-- CMAKE_INSTALL_PREFIX = /usr/local
-- BUILD_DOCS = ON
-- WITH_BINLOG = OFF
-- RUN_CPPCHECK = OFF
-- Change a values with: cmake -D<Variable>=<Value>
-- ------------------------------------------------
--
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GLIB2_LIBRARIES (ADVANCED)
linked by target "mydumper" in directory /root/mydumper-0.9.
linked by target "myloader" in directory /root/mydumper-0.9.
GTHREAD2_LIBRARIES (ADVANCED)
linked by target "mydumper" in directory /root/mydumper-0.9.
linked by target "myloader" in directory /root/mydumper-0.9. -- Configuring incomplete, errors occurred!
See also "/root/mydumper-0.9.1/CMakeFiles/CMakeOutput.log". [root@zlm1 :: ~/mydumper-0.9.]
#yum install glib2-devel -- Install glib2-devel package to solve the problem above.
--Omitted. [root@zlm1 :: ~/mydumper-0.9.]
#cmake .
-- Using mysql-config: /usr/local/mysql/bin/mysql_config
-- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib64/libpthread.so;/usr/lib64/libm.so;/usr/lib64/librt.so;/usr/lib64/libdl.so
-- checking for one of the modules 'glib-2.0'
-- checking for one of the modules 'gthread-2.0' CMake Warning at docs/CMakeLists.txt: (message):
Unable to find Sphinx documentation generator -- ------------------------------------------------
-- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
-- CMAKE_INSTALL_PREFIX = /usr/local
-- BUILD_DOCS = ON
-- WITH_BINLOG = OFF
-- RUN_CPPCHECK = OFF
-- Change a values with: cmake -D<Variable>=<Value>
-- ------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mydumper-0.9. [root@zlm1 :: ~/mydumper-0.9.]
#make
Scanning dependencies of target mydumper
[ %] Building C object CMakeFiles/mydumper.dir/mydumper.c.o
[ %] Building C object CMakeFiles/mydumper.dir/server_detect.c.o
[ %] Building C object CMakeFiles/mydumper.dir/g_unix_signal.c.o
Linking C executable mydumper
[ %] Built target mydumper
Scanning dependencies of target myloader
[%] Building C object CMakeFiles/myloader.dir/myloader.c.o
Linking C executable myloader
[%] Built target myloader [root@zlm1 :: ~/mydumper-0.9.]
#ls -l | grep my
-rwxr-xr-x root root Jun : mydumper -- This can be used to backup db.
-rw-r--r-- root root Nov mydumper.c
-rw-r--r-- root root Nov mydumper.h
-rwxr-xr-x root root Jun : myloader -- This can be used to restore db.
-rw-r--r-- root root Nov myloader.c
-rw-r--r-- root root Nov myloader.hss [root@zlm1 :: ~/mydumper-0.9.]
#mydumper --help
-bash: mydumper: command not found ###Copy
[root@zlm1 :: ~/mydumper-0.9.]
#cp mydumper /usr/bin [root@zlm1 :: ~/mydumper-0.9.]
#cp myloader /usr/bin [root@zlm1 :: ~/mydumper-0.9.]
#mydumper --help -- There's not option to dump binlogs in new version,you cannot find parameter "-b" anymore.
Usage:
mydumper [OPTION?] multi-threaded MySQL dumping Help Options:
-?, --help Show help options Application Options:
-B, --database Database to dump
-T, --tables-list Comma delimited table list to dump (does not exclude regex option)
-o, --outputdir Directory to output files to
-s, --statement-size Attempted size of INSERT statement in bytes, default
-r, --rows Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
-F, --chunk-filesize Split tables into chunks of this output file size. This value is in MB
-c, --compress Compress output files
-e, --build-empty-files Build dump files even if no data available from table
-x, --regex Regular expression for 'db.table' matching
-i, --ignore-engines Comma delimited list of storage engines to ignore
-m, --no-schemas Do not dump table schemas with the data
-d, --no-data Do not dump table data
-G, --triggers Dump triggers
-E, --events Dump events
-R, --routines Dump stored procedures and functions
-k, --no-locks Do not execute the temporary shared read lock. WARNING: This will cause inconsistent backups
--less-locking Minimize locking time on InnoDB tables.
-l, --long-query-guard Set long query timer in seconds, default
-K, --kill-long-queries Kill long running queries (instead of aborting)
-D, --daemon Enable daemon mode
-I, --snapshot-interval Interval between each dump snapshot (in minutes), requires --daemon, default
-L, --logfile Log file name to use, by default stdout is used
--tz-utc SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use --skip-tz-utc to disable.
--skip-tz-utc
--use-savepoints Use savepoints to reduce metadata locking issues, needs SUPER privilege
--success-on- Not increment error count and Warning instead of Critical in case of table doesn't exist
--lock-all-tables Use LOCK TABLE for all, instead of FTWRL
-U, --updated-since Use Update_time to dump only tables updated in the last U days
--trx-consistency-only Transactional consistency only
-h, --host The host to connect to
-u, --user Username with privileges to run the dump
-p, --password User password
-P, --port TCP/IP port to connect to
-S, --socket UNIX domain socket file to use for connection
-t, --threads Number of threads to use, default
-C, --compress-protocol Use compression on the MySQL connection
-V, --version Show the program version and exit
-v, --verbose Verbosity of output, = silent, = errors, = warnings, = info, default ###create a big MyISAM table.###
root@localhost:mysql3306.sock [zlm]::>create table test_myisam(
-> id int primary key
-> ) engine=myisam;
Query OK, rows affected (0.00 sec) root@localhost:mysql3306.sock [zlm]::>delimiter $$
root@localhost:mysql3306.sock [zlm]::>create procedure pro_insert (count int)
-> begin
-> declare i int unsigned default ;
-> start transaction;
-> while i < count do
-> insert into test_myisam(id) values(i);
-> set i=i+;
-> end while;
-> commit;
-> end;
-> $$
Query OK, rows affected (0.00 sec) root@localhost:mysql3306.sock [zlm]::>delimiter ;
root@localhost:mysql3306.sock [zlm]::>call pro_insert();
Query OK, rows affected ( min 37.72 sec) root@localhost:mysql3306.sock [zlm]::>select count(*) from test_myisam;
+----------+
| count(*) |
+----------+
| |
+----------+
row in set (0.03 sec) root@localhost:mysql3306.sock [zlm]::>show tables;
+----------------+
| Tables_in_zlm |
+----------------+
| semi_sync_test |
| t1 |
| t2 |
| t3 |
| test |
| test_flashbk |
| test_myisam |
+----------------+
rows in set (0.06 sec) root@localhost:mysql3306.sock [zlm]::>show create table test;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test | CREATE TABLE `test` (
`id` bigint() NOT NULL AUTO_INCREMENT,
`name` varchar() NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8mb4 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
row in set (0.00 sec) ###Generate a backup by threads.###
[root@zlm1 :: ~/mydumper-0.9.]
#mydumper -B zlm -T test,test_myisam -u root -p Passw0rd -h localhost -t -o /data/backup -- -t specify threads(default ) in all. [root@zlm1 :: ~/mydumper-0.9.] ###Check the output file.###
[root@zlm1 :: ~/mydumper-0.9.]
#ls -l /data/backup
total
drwxr-x--- root root Jun : --16_11--
-rw-r--r-- root root Jun : metadata -- It contains time,binlog file & position,GTID informations.
-rw-r--r-- root root Jun : zlm-schema-create.sql -- It contains database structure.
-rw-r--r-- root root Jun : zlm.test_myisam-schema.sql -- It contains table structure.
-rw-r--r-- root root Jun : zlm.test_myisam.sql -- It contains data of MyISAM table "test_myisam".
-rw-r--r-- root root Jun : zlm.test-schema.sql -- It contains table structure.
-rw-r--r-- root root Jun : zlm.test.sql -- It contains data of innodb table "test". ###Check the general log for detail of backup.###
[root@zlm1 :: /data/mysql/mysql3306/data]
#cat zlm1.log --17T16::.634569Z Connect root@localhost on zlm using Socket
--17T16::.634595Z Query SET SESSION wait_timeout =
--17T16::.634670Z Query SET SESSION net_write_timeout =
--17T16::.634819Z Query SHOW PROCESSLIST
--17T16::.634902Z Query FLUSH TABLES WITH READ LOCK -- Begin to generate FTWRL in order to have consistent backup.
--17T16::.634997Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */ -- create consistent snapshot.
--17T16::.635072Z Query /*!40101 SET NAMES binary*/
--17T16::.635125Z Query SHOW MASTER STATUS
--17T16::.635205Z Query SHOW SLAVE STATUS
--17T16::.636261Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T16::.636392Z Query SET SESSION wait_timeout =
--17T16::.636443Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T16::.636479Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T16::.636527Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T16::.636570Z Query /*!40101 SET NAMES binary*/
--17T16::.636913Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T16::.636962Z Query SET SESSION wait_timeout =
--17T16::.637005Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T16::.637039Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T16::.637084Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T16::.637123Z Query /*!40101 SET NAMES binary*/
--17T16::.637178Z Init DB zlm
--17T16::.637219Z Query SHOW TABLE STATUS
--17T16::.772453Z Query SHOW CREATE DATABASE `zlm`
--17T16::.772650Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test_myisam`
--17T16::.772927Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test`
--17T16::.848929Z Query SHOW CREATE TABLE `zlm`.`test` -- Get the table structure of "test".
--17T16::.961590Z Query SHOW CREATE TABLE `zlm`.`test_myisam` -- Get the table structure of "test_myisam".
--17T16::.022712Z Query UNLOCK TABLES /* FTWRL */ -- Release table locks after get structure of tables.
--17T16::.022724Z Quit
--17T16::.022812Z Quit
--17T16::.024460Z Quit ###Generate a backup by threads.###
[root@zlm1 :: ~/mydumper-0.9.]
#mydumper -B zlm -T test,test_myisam -u root -p Passw0rd -h localhost -t -o /data/backup [root@zlm1 :: ~/mydumper-0.9.]
# ###Check the general log for detail of backup.###
[root@zlm1 :: /data/mysql/mysql3306/data]
#cat zlm1.log --17T17::.654622Z Connect root@localhost on zlm using Socket
--17T17::.654864Z Query SET SESSION wait_timeout =
--17T17::.654922Z Query SET SESSION net_write_timeout =
--17T17::.655009Z Query SHOW PROCESSLIST
--17T17::.655072Z Query FLUSH TABLES WITH READ LOCK
--17T17::.656485Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.656577Z Query /*!40101 SET NAMES binary*/
--17T17::.656744Z Query SHOW MASTER STATUS
--17T17::.656832Z Query SHOW SLAVE STATUS
--17T17::.657303Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.657367Z Query SET SESSION wait_timeout =
--17T17::.657416Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.657453Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.657503Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.657547Z Query /*!40101 SET NAMES binary*/
--17T17::.658353Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.658438Z Query SET SESSION wait_timeout =
--17T17::.658485Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.658568Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.658631Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.658689Z Query /*!40101 SET NAMES binary*/
--17T17::.659442Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.659541Z Query SET SESSION wait_timeout =
--17T17::.659580Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.659581Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.659581Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.659614Z Query /*!40101 SET NAMES binary*/
--17T17::.659992Z Connect root@localhost on using Socket -- Create sub thread # in backing up.
--17T17::.660057Z Query SET SESSION wait_timeout =
--17T17::.660106Z Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
--17T17::.660144Z Query START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */
--17T17::.660193Z Query /*!40103 SET TIME_ZONE='+00:00' */
--17T17::.660236Z Query /*!40101 SET NAMES binary*/
--17T17::.660801Z Init DB zlm
--17T17::.661053Z Query SHOW TABLE STATUS
--17T17::.662581Z Query SHOW CREATE DATABASE `zlm`
--17T17::.662906Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test_myisam`
--17T17::.669514Z Query SELECT /*!40001 SQL_NO_CACHE */ * FROM `zlm`.`test`
--17T17::.674024Z Query SHOW CREATE TABLE `zlm`.`test`
--17T17::.681205Z Query SHOW CREATE TABLE `zlm`.`test_myisam`
--17T17::.548006Z Query UNLOCK TABLES /* FTWRL */
--17T17::.548426Z Quit
--17T17::.548509Z Quit
--17T17::.548552Z Quit
--17T17::.548619Z Quit
--17T17::.549291Z Quit
- mydump is a logical backup tool like mysqldump,but more efficient.
- mydump support mutiple thread backup,which can short your backup time especially when backing up big tables.
- When backing up operation begins there also a FTWRL to make a consistent backup.
MySQL备份恢复之mydumper的更多相关文章
- Mysql 备份恢复之 Mysqldump 工具
目前正在学习中,看到mysqldump工具导出的数据都是文本形式的,如果是blob或text大对象类型导出的是什么格式的?这个需要后续研究.下面只先总结下简单的. 一.备份1.备份Mysql一个数据库 ...
- MySQL备份恢复之Xtrabackup
Preface Today,I'm gonna use the Xtrabackup tool to demonstrate the procedure of backing up MyS ...
- MySQL备份恢复之mysqldump
Preface The day before yesterday,there's a motif about the lock procedure when backing up My ...
- mysql备份工具 :mysqldump mydumper Xtrabackup 原理
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
- MySQL多线程备份工具:mydumper
MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...
- MySQL备份还原之一mydumper
1)源码编译安装 1.下载 mydumper源码 2.解压 [mysql@localhost ~]$ tar -xvf mydumper-0.9.1.tar mydumper-0.9.1/CMakeL ...
- MySQL备份迁移之mydumper
简介 mydumper 是一款开源的 MySQL 逻辑备份工具,主要由 C 语言编写.与 MySQL 自带的 mysqldump 类似,但是 mydumper 更快更高效. mydumper 的一些优 ...
- MySQL备份原理详解
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
- mysql 备份与还原
http://dev.yesky.com/281/35291281.shtml 每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显 ...
随机推荐
- TypeScript 入门笔记
1.原始数据类型 JavaScript 的类型分为两种:原始数据类型和对象数据类型.原始数据类型包括布尔值.数值.字符串.null.undefined 以及 ES6 中的 Symbol. 前五种数据类 ...
- javascript 权威指南
1.对象 1.1.序列话对象 JSON.stringify() 和 JSON.parse() 用来序列化和还原 javascript 对象. var o = {x:1, y:{z:[false,nul ...
- html5格式样式
<b> 加粗 <b style="font-size: 100px;">大字体</b>
- Hive的运算和函数大全
hive 常用运算 测试各种内置函数的快捷方法: 创建一个 dual 表 create table dual(id string); load 一个文件(只有一行内容:内容为一个空格)到 dual 表 ...
- C# 取整问题
关于C#里的取整问题,有向上和向下两种取整方式[1]向上取整a=1.2345string res = Math.Ceiling(Convert.ToDecimal(a)).ToString();str ...
- Oracle的sql语句的两种判断形式
Oracle的sql语句的两种判断形式 判断当前列同时改动当前列 判断一个情况改动其他值 一类情况详解:实现的是当num这一列的值为3时,就显示好 以此类推 1)case num when 3 the ...
- c#MD5加密解密
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Secur ...
- DataBase Migration 使用笔记
Add-Migration 新建数据库迁移版本 Update-Database -Verbose 更新到数据库(-Verbose 显示详细信息) Update-Database –TargetMigr ...
- dedecms 权重排序问题
isweight='y' orderway='asc' orderby='weight' 依次进入根目录>dede 找到打开文件 album_edit.php //找到更新数据库的SQL ...
- CryptoSwift:密码学
Hash (Digest) MD5 | SHA1 | SHA224 | SHA256 | SHA384 | SHA512 | SHA3 Cyclic Redundancy Check (CRC) CR ...