我有一个下面的脚本,通过380个MySQL innodb数据库,并运行各种创建表,插入,更新等,以迁移架构.它从连接到云数据库服务器的Web服务器运行.我将迁移脚本从这个问题中删除,因为我认为它不相关.
我遇到了一个问题,我正在努力寻找解决方法.
我有一个运行MySQL 5.6的4gb ram云数据库服务器.我将380个数据库与40个表迁移到59个表.大约70%的通过我得到了以下错误.它在一次迁移过程中死亡,服务器崩溃了.我正在观察内存使用情况,内存不足.它是一个数据库即服务,因此我没有对服务器的root访问权限,因此我不知道所有细节.
在phppoint_smg上运行查询
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000) at line 355: Lost connection to MySQL server during query
Run Code Online (Sandbox Code Playgroud)
在phppoint_soulofhalloween上运行查询
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Run Code Online (Sandbox Code Playgroud)
在phppoint_srvais上运行查询
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000): Lost connection to …Run Code Online (Sandbox Code Playgroud) 我试图在后台运行长时间运行的任务,而无需再进行登录,并在终端返回一个提示,但我这样做的时候,任务似乎进入到了后台,但我的提示不变得可用,除非我命中控制+ c.我想运行任务,然后回复我的提示.
[staging@php-pos-web ~]$ nohup php test.php > test.txt &
[1] 27251
[staging@php-pos-web ~]$ nohup: ignoring input and redirecting stderr to stdout
Run Code Online (Sandbox Code Playgroud) 我有复杂的查询,创建一个临时表,可能需要5秒钟才能运行或更多.这似乎在同时在类似的表上运行另一个事务时导致死锁.我不能在本地复制,但在生产中我能够每隔几天发生一次.(我记录了mysql错误)
查询非常复杂(显示在页面底部); 但你不需要理解逻辑; 只是它从一堆表和连接中选择,可能需要一段时间才能运行.
我还有一个插入许多相同表的事务.我偶尔会遇到一个mysql错误1213: Deadlock found when trying to get lock; try restarting transaction.
这是交易的伪代码
START TRANSACTION
INSERT INTO phppos_sales
INSERT MANY RECORDS INTO phppos_sales_items
INSERT MANY RECORDS INTO phppos_sales_items_taxes
INSERT MANY RECORDS INTO phppos_sales_payments
END TRANSACTION
Run Code Online (Sandbox Code Playgroud)
How do I go about resolving this deadlock? I tried changing isolation level to READ UNCOMMITTED but mysql settings wouldn't allow for this; and I need to make this work in a variety of environments where I don't have control of …
以下是我用于通过电子邮件搜索某人的查询
SELECT *
FROM phppos_customers
JOIN phppos_people ON phppos_customers.person_id = phppos_people.person_id
WHERE deleted = 0
AND email LIKE '%f%'
ORDER BY email ASC
Run Code Online (Sandbox Code Playgroud)
在"电子邮件"上添加索引会加快查询速度吗?
我正在使用MySQL LOAD DATA LOCAL INFILE命令,我收到此错误:
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1148 The used
command is not allowed with this MySQL version: LOAD DATA LOCAL INFILE
'/tmp/phpI0ox54' INTO TABLE `dev_tmp` FIELDS TERMINATED BY ',' ENCLOSED
BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; Array ( ) in
dc_real_estate_form_submit() (line 147 of /PATH/TO/PHP/SCRIPT).
Run Code Online (Sandbox Code Playgroud)
我们可以更改什么设置以允许LOAD DATA LOCAL infile?
这是我们使用的Drupal 7代码:
$sql = "LOAD DATA LOCAL INFILE '".$file."'
INTO TABLE `dev_tmp`
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
TERMINATED …Run Code Online (Sandbox Code Playgroud) 我遇到了mysql条件注释查询的问题,其中报告错误而没有语法错误.它适用于至少有一个查询实际上是以条件执行的情况.
我使用的是php 5.6.24和mysql 5.5.52-cll
示例1(成功):
<?php
$conn = mysqli_connect("127.0.0.1", "aaatex_phppos", "phppos", "aaatex_phppos2");
$test1 = "
/*!40000 REPLACE INTO `phppos_app_config` (`key`, `value`) VALUES ('supports_full_text', '0') */;
/*!50604 REPLACE INTO `phppos_app_config` (`key`, `value`) VALUES ('supports_full_text', '1') */;";
mysqli_multi_query($conn,$test1);
print_r(mysqli_error_list($conn));
?>
Run Code Online (Sandbox Code Playgroud)
supports_full_text值为0,如预期的那样.
例2(失败):
<?php
$conn = mysqli_connect("127.0.0.1", "aaatex_phppos", "phppos", "aaatex_phppos2");
$test2 = "
/*!50604 REPLACE INTO `phppos_app_config` (`key`, `value`) VALUES ('test', '0') */;
/*!50604 REPLACE INTO `phppos_app_config` (`key`, `value`) VALUES ('test', '1') */;";
mysqli_multi_query($conn,$test2);
print_r(mysqli_error_list($conn));
Run Code Online (Sandbox Code Playgroud)
收到的错误:
Array
(
[0] => Array
(
[errno] …Run Code Online (Sandbox Code Playgroud) 我知道不建议这样做,但有没有办法生成/修改现有项目,因此在使用rails生成控制器NAME等生成器时,它不会创建测试文件?
我试图访问位于我的应用程序的lib目录中的模块中的函数.(LIB/search.rb)
我实际上是想通过以下方式获取邮政编码:http: //joshhuckabee.com/simple-zip-code-perimeter-search-rails
LIB/search.rb
module Search
def zip_code_perimeter_search(zip, radius)
#code
end
end
Run Code Online (Sandbox Code Playgroud)
我试图从rails控制台或我的控制器调用zip_code_perimeter_search函数,两次我得到未定义的方法.有任何想法吗?
我正在阅读这个问题: mysql扩展已被弃用,将来会被删除:使用mysqli或PDO代替
它让我觉得我应该从mysql改为mysqli.这是CodeIgniter中的一个字符更改所以它不是很难:)
但有什么我应该注意发现可能发生的任何错误?某些查询是否有不同的处理方式?
在运行Php 5.4的Linux MySQL 5.6服务器中,以下命令需要2-3秒
exec("mysql --host=$db_host --user=$db_user --password=$db_password $db_name < $sql_file");
Run Code Online (Sandbox Code Playgroud)
在具有类似配置的窗口上,需要10-15秒.Windows机器有更多的RAM(16GB)和类似的硬盘驱动器.我安装了MySQL 5.6并没有进行配置更改.这是在Windows Server 2012上.
我可以更改哪些配置来解决此问题?
数据库文件创建了大约40个innodb表,其中包含非常少的插入.
编辑:这是我正在运行的文件:
https://www.dropbox.com/s/uguzgbbnyghok0o/database_14.4.sql?dl=0
更新:在Windows 8和7上它是3秒.但在Windows Server 2012上它是15秒以上.我禁用了System Center 2012,但没有任何区别.
更新2:
我也试过杀死除mysql和IIS之外的几乎所有服务,它仍然执行缓慢.Windows Server 2012中是否存在导致此速度变慢的问题?
更新3我尝试禁用写缓存缓冲区刷新,性能现在很好.
我没有必要在我测试的其他机器上执行此操作.这是否表明磁盘是如何设置的?
mysql ×7
php ×5
mysqli ×2
codeigniter ×1
database ×1
indexing ×1
nohup ×1
sql ×1
transactions ×1