草庐IT

php - 通用远程数据备份和下载——包括 InnoDb 支持

我想要一个基于PHP的解决方案来备份远程服务器的数据库(仅数据而不是代码)并下载文件。我知道基于Shell的解决方案更适合做这些事情(在本地系统上运行shell脚本并通过SSH连接到远程系统)但是需要有一个基于PHP的解决方案,其中知道URL和拥有数据库凭据就足够了非技术人员进行备份。PHP脚本可以上传到远程服务器并执行。以下是我想要的功能:-至少应该支持InnoDb引擎——应该导出外键约束。如果它支持所有其他引擎,则无害。应该在所有服务器上工作,存在最大可能数量的限制(我知道一些限制,例如safe_mode启用,exec(),system()功能被禁用等)。我想要一个非常通用的解决方

mysql - InnoDB 需要一个多小时来导入 600MB 文件,MyISAM 在几分钟内

我目前正在创建一个环境来测试应用程序的性能;我正在使用MySQL和InnoDB进行测试,以找出最适合我们的。在此环境中,我们将自动准备数据库(加载现有转储)并检测我们的测试工具。我正准备使用MySQL和InnoDB测试相同的数据转储,但我已经无法将初始导入速度提高到InnoDB部分的可用速度。最初的转储花费了更长的时间,但这并不让我担心:$foriintestdb_myisamtestdb_innodb;dotimemysqldump--extended-insert$i>$i.sql;donereal0m38.152suser0m8.381ssys0m2.612sreal1m16.6

mysql - InnoDB 需要一个多小时来导入 600MB 文件,MyISAM 在几分钟内

我目前正在创建一个环境来测试应用程序的性能;我正在使用MySQL和InnoDB进行测试,以找出最适合我们的。在此环境中,我们将自动准备数据库(加载现有转储)并检测我们的测试工具。我正准备使用MySQL和InnoDB测试相同的数据转储,但我已经无法将初始导入速度提高到InnoDB部分的可用速度。最初的转储花费了更长的时间,但这并不让我担心:$foriintestdb_myisamtestdb_innodb;dotimemysqldump--extended-insert$i>$i.sql;donereal0m38.152suser0m8.381ssys0m2.612sreal1m16.6

mysqldump 只导出一张表

我是用mysqldump来导出数据库的,像这样:mysqldump-uroot-ppasswordmy_database>c:\temp\my_database.sql不知何故,它只导出一个表。是不是我做错了什么? 最佳答案 试试这个。mysqldump的使用一般有3种方式——为了转储一组一个或多个表,shell>mysqldump[options]db_name[tbl_name...]一组一个或多个完整的数据库shell>mysqldump[options]--databasesdb_name...或整个MySQL服务器-如下所

mysqldump 只导出一张表

我是用mysqldump来导出数据库的,像这样:mysqldump-uroot-ppasswordmy_database>c:\temp\my_database.sql不知何故,它只导出一个表。是不是我做错了什么? 最佳答案 试试这个。mysqldump的使用一般有3种方式——为了转储一组一个或多个表,shell>mysqldump[options]db_name[tbl_name...]一组一个或多个完整的数据库shell>mysqldump[options]--databasesdb_name...或整个MySQL服务器-如下所

mysql - #1025 - 将 './database/#sql-2e0f_1254ba7' 重命名为 './database/table' 时出错(错误号 : 150)

所以我试图向我的数据库中的一个表添加一个主键。现在它有一个这样的主键:PRIMARYKEY(user_id,round_number)其中user_id是外键。我正在尝试将其更改为:PRIMARYKEY(user_id,round_number,created_at)我在phpmyadmin中通过单击表结构View中的主键图标来执行此操作。这是我得到的错误:#1025-Erroronrenameof'./database/#sql-2e0f_1254ba7'to'./database/table'(errno:150)它是一个带有InnoDB表引擎的MySQL数据库。

mysql - #1025 - 将 './database/#sql-2e0f_1254ba7' 重命名为 './database/table' 时出错(错误号 : 150)

所以我试图向我的数据库中的一个表添加一个主键。现在它有一个这样的主键:PRIMARYKEY(user_id,round_number)其中user_id是外键。我正在尝试将其更改为:PRIMARYKEY(user_id,round_number,created_at)我在phpmyadmin中通过单击表结构View中的主键图标来执行此操作。这是我得到的错误:#1025-Erroronrenameof'./database/#sql-2e0f_1254ba7'to'./database/table'(errno:150)它是一个带有InnoDB表引擎的MySQL数据库。

mysql - 我如何知道一个 mysql 表使用的是 myISAM 还是 InnoDB 引擎?

在MySQL中,没有办法为某个数据库指定存储引擎,只能为单个表指定存储引擎。但是,您可以指定在一个session期间使用的存储引擎:SETstorage_engine=InnoDB;因此您不必为每个表指定它。如果确实所有表都在使用InnoDB,我该如何确认? 最佳答案 如果使用SHOWCREATETABLE,则必须将引擎解析出查询。从INFORMATION_SCHEMA数据库中选择是不好的做法,因为开发人员保留随时更改其架构的权利(尽管不太可能)。要使用的正确查询是SHOWTABLESTATUS-您可以获取数据库中所有表的信息:SH

mysql - 我如何知道一个 mysql 表使用的是 myISAM 还是 InnoDB 引擎?

在MySQL中,没有办法为某个数据库指定存储引擎,只能为单个表指定存储引擎。但是,您可以指定在一个session期间使用的存储引擎:SETstorage_engine=InnoDB;因此您不必为每个表指定它。如果确实所有表都在使用InnoDB,我该如何确认? 最佳答案 如果使用SHOWCREATETABLE,则必须将引擎解析出查询。从INFORMATION_SCHEMA数据库中选择是不好的做法,因为开发人员保留随时更改其架构的权利(尽管不太可能)。要使用的正确查询是SHOWTABLESTATUS-您可以获取数据库中所有表的信息:SH

mysql - 如何找到导致 "Waiting for table metadata lock"状态的事务?

我正在尝试对表执行一些DDL,并且SHOWPROCESSLIST导致“等待表元数据锁定”消息。我怎样才能知道哪个交易还没有结束?我正在使用MySQLv5.5.24。 最佳答案 适用于MySql版本SHOWENGINEINNODBSTATUS\G寻找章节-TRANSACTIONS我们可以使用INFORMATION_SCHEMA表。有用的查询检查所有事务正在等待的锁:USEINFORMATION_SCHEMA;SELECT*FROMINNODB_LOCK_WAITS;阻塞事务列表:SELECT*FROMINNODB_LOCKSWHERE