I wrote a Windows Service to run on Win10, and it worked perfectly fine until I decided to change it a bit. I rewrote some logic, tested it in both Debug and Release configurations, and everything was fine. Then I uninstalled the current version of the service using installutil.exe /u %servicename.exe%
and reinstalled it again using installutil.exe %servicename.exe%
.
For some reason, this new version cannot start, and it crashes with Error 1064. This is the full error text:
Windows could not start %servicename% service on Local Computer. Error 1064: An exception occurred in the service when handling the control request.
The last time I installed this service, I ran into some difficulties, but quickly fixed them by changing the Log On
properties. This time, it is not working. Please help with this issue.
Thanks.
Update 1
Here are my Main()
and OnStart()
service methods:
Main()
static void Main()
{
#if DEBUG
var service = new SalesforceToJiraService();
service.OnDebug();
Thread.Sleep(Timeout.Infinite);
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new SalesforceToJiraService()
};
ServiceBase.Run(ServicesToRun);
#endif
}
OnStart()
protected override void OnStart(string[] args)
{
this.ConfigureServices();
this.timer.Start();
this.logger.Information("SalesforceToJira service started.");
}
Update 2
More code:
ConfigureServices()
protected void ConfigureServices()
{
this.configuration = ConfigurationHelper.LoadConfiguration(ConfigurationPath);
this.logger = ConfigurationHelper.ConfigureLogger(this.configuration.Logs.LogsPath);
this.timer = ConfigurationHelper.ConfigureTimer(this.configuration.ProcessInterval.TotalMilliseconds,
(sender, eventArgs) => this.ProcessCasesAsync(sender, eventArgs).GetAwaiter().GetResult());
this.salesforceClient = new SalesforceCliClient(this.configuration.Salesforce.CliPath);
this.jiraClient = Jira.CreateRestClient(
this.configuration.Jira.Url,
this.configuration.Jira.Username,
this.configuration.Jira.Password);
}
I’m using Newtonsoft.JSON
for deserializing a JSON configuration file, Serilog
for logging, System.Timers.Timer
for periodic events, AtlassianSDK
for the Jira API and some wrappers over Salesforce CLI
for Salesforce.
I wrote a Windows Service to run on Win10, and it worked perfectly fine until I decided to change it a bit. I rewrote some logic, tested it in both Debug and Release configurations, and everything was fine. Then I uninstalled the current version of the service using installutil.exe /u %servicename.exe%
and reinstalled it again using installutil.exe %servicename.exe%
.
For some reason, this new version cannot start, and it crashes with Error 1064. This is the full error text:
Windows could not start %servicename% service on Local Computer. Error 1064: An exception occurred in the service when handling the control request.
The last time I installed this service, I ran into some difficulties, but quickly fixed them by changing the Log On
properties. This time, it is not working. Please help with this issue.
Thanks.
Update 1
Here are my Main()
and OnStart()
service methods:
Main()
static void Main()
{
#if DEBUG
var service = new SalesforceToJiraService();
service.OnDebug();
Thread.Sleep(Timeout.Infinite);
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new SalesforceToJiraService()
};
ServiceBase.Run(ServicesToRun);
#endif
}
OnStart()
protected override void OnStart(string[] args)
{
this.ConfigureServices();
this.timer.Start();
this.logger.Information("SalesforceToJira service started.");
}
Update 2
More code:
ConfigureServices()
protected void ConfigureServices()
{
this.configuration = ConfigurationHelper.LoadConfiguration(ConfigurationPath);
this.logger = ConfigurationHelper.ConfigureLogger(this.configuration.Logs.LogsPath);
this.timer = ConfigurationHelper.ConfigureTimer(this.configuration.ProcessInterval.TotalMilliseconds,
(sender, eventArgs) => this.ProcessCasesAsync(sender, eventArgs).GetAwaiter().GetResult());
this.salesforceClient = new SalesforceCliClient(this.configuration.Salesforce.CliPath);
this.jiraClient = Jira.CreateRestClient(
this.configuration.Jira.Url,
this.configuration.Jira.Username,
this.configuration.Jira.Password);
}
I’m using Newtonsoft.JSON
for deserializing a JSON configuration file, Serilog
for logging, System.Timers.Timer
for periodic events, AtlassianSDK
for the Jira API and some wrappers over Salesforce CLI
for Salesforce.
3 / 3 / 1 Регистрация: 19.05.2019 Сообщений: 155 |
|
1 |
|
04.04.2021, 14:31. Показов 8299. Ответов 5
https://docs.microsoft.com/ru-… t-designer выполнял код отсюда, значит код рабочий , уверен кто это делал сталкивался с этой проблемой и надеюсь решил.
__________________ 0 |
3 / 3 / 1 Регистрация: 19.05.2019 Сообщений: 155 |
|
04.04.2021, 14:36 [ТС] |
2 |
Увеличиваю сообщение до 3х символов Миниатюры
0 |
2715 / 2026 / 374 Регистрация: 22.07.2011 Сообщений: 7,671 |
|
04.04.2021, 14:58 |
3 |
ДЛ имончик, пример кода в методе OnStart покажите. 0 |
ДЛ имончик 3 / 3 / 1 Регистрация: 19.05.2019 Сообщений: 155 |
||||
04.04.2021, 16:44 [ТС] |
4 |
|||
0 |
2715 / 2026 / 374 Регистрация: 22.07.2011 Сообщений: 7,671 |
|
04.04.2021, 20:42 |
5 |
ДЛ имончик, оберни все это в try catch , наверняка тут падает , потому служба и не стартует. 0 |
ДЛ имончик 3 / 3 / 1 Регистрация: 19.05.2019 Сообщений: 155 |
||||||||
05.04.2021, 13:08 [ТС] |
6 |
|||||||
не помогло, служба запускается , грузится и тогда возникает ошибка (где то на 10%), она и раньше начинала запуск
он пустой , но при этом есть такие команды
мб тут проблема? Добавлено через 16 минут 0 |
Дата: 25.11.2013
Автор: Василий Лукьянчиков , vl (at) sqlinfo (dot) ru
Статья ориентирована на новичков. В ней объясняется, что означает ошибка сервера MySQL №1064, рассматриваются типичные ситуации и причины возникновения этой ошибки, а также даются рекомендации по исправлению.
Рассмотрим простейший пример.
SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM dle_mservice WHERE category = ‘1’ AND approve = ‘1’ ORDER BY time DESC LIMIT -10,10;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘-10,10’ at line 1
Сервер MySQL сообщает, что в первой строке нашего SQL запроса имеется синтаксическая ошибка, и в одинарных кавычках цитирует часть запроса с того места где начинается ошибка. Это очень полезное свойство, так как позволяет сразу определить место, которое сервер счел ошибочным. В данном случае это ‘-10,10’, ошибка возникает из-за того, что параметр LIMIT не может быть отрицательным числом.
Однако, бывает и так, что цитируемый кусок запроса не содержит синтаксической ошибки. Это означает, что данная часть запроса находится не на своем месте из-за чего весь запрос становится синтаксически неверным. Например, отсутствует разделитель между двумя запросами, пропущен кусок запроса, невидимый символ в дампе и т.д. Неудобством таких ситуаций является то, что сообщение об ошибке не содержит исходный запрос.
Действия по исправлению зависят от контекста возникновения ошибки. Таковых всего 3:
1. Запрос в редакторе.
Самый простейший случай — вы пишите свой запрос в редакторе. Если причина не опечатка, то:
- Смотреть в документации синтаксис команды для вашей версии сервера MySQL.
Обратите внимание: речь идет о версии сервера MySQL, а не клиента (phpmyadmin, workbench и т.д.). Версию сервера можно узнать выполнив команду select version();
- В MySQL допускается использование ключевых слов в качестве имен столбцов/таблиц, но при этом их необходимо заключать в обратные кавычки (там где буква ё на клавиатуре).
Пример:select order from test;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘order from test’ at line 1
MariaDB [test]> select `order` from test;
+——-+
| order |
+——-+
| NULL |
+——-+ - По умолчанию ; разделяет команды. Если же нужно выполнить набор из нескольких инструкций как одну команду (например, при создании процедур, фунуций, триггеров), то в зависимости от используемого клиента может потребоваться переопределить разделитель с помощью DELIMITER, иначе интерпретация команды остановится на первой ; и будет ошибка синтаксиса. Пример:
delimiter //
create procedure test()
begin
set @a=1;
select @a;
end//Обратите внимание: DELIMITER это команда консольного клиента mysql, необходимость его использования зависит от того как вы передаете команду серверу. Например,:
- mysql_query() выполняет содержимое как одну команду, добавление delimiter приведет к error 1064 с цитатой, начинающейся со слова delimiter
- phpmyadmin удаляет слово delimiter из-за чего возникает error 1064 с цитатой, начинающейся с переопределенного разделителя
- в MysqlQueryBrowser напротив необходимо использовать delimiter.
2. Перенос базы на другой сервер.
У вас есть дамп (т.е. файл с расширением .sql) и при попытке его импортировать вы получаете ошибку 1064. Причины:
-
В различных версиях набор ключевых слов и синтаксис может немного отличаться. Наиболее распространенный случай: команда create table, в которой ключевое слово type было заменено на engine. Например, если вы получаете ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM CHARACTER SET `utf8`’ at line 29
Это означает, что вы переносите базу в пятую версию сервера MySQL, в котором ключевое слово TYPE не поддерживается и его нужно заменить на ENGINE.
Редко бываю случаи, когда перенос идет на старый (~3.23) сервер, который кодировки не поддерживает. Тогда ошибка будет иметь вид:
#1064 — You have an error in your SQL syntax near ‘DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci’ at line 1
Такое может произойти, если вы переносите базу с хостинга на локальный комп, где стоит древняя версия MySQL. Лучшим решением в данном случае будет не править дамп, а обновить MySQL.
-
Часто проблемы вызваны тем, что дамп делается неродными средствами MySQL (например, phpmyadmin) из-за чего в нем могут быть BOM-маркер, собственный синтаксис комментариев, завершения команды и т.д. Кроме того при использовании того же phpmyadmin возможна ситуация при которой из-за ограничения апача на размер передаваемого файла команда будет обрезана, что приведет к ошибке 1064.
Например, если вы получаете ошибку:#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘
CREATE TABLE `jos_banner` (
`bid` int(11) NOT NULL auto_increment,
`ci‘ at line 1Значит ваш дамп содержит BOM-маркер. Это три байта в начале файла, помогающие программе определить что данный файл сохранен в кодировке UTF-8. Проблема в том, что MySQL пытается интерпретировать их как команду из-за чего возникает ошибка синтаксиса. Нужно открыть дамп в текстовом редакторе (например, Notepad++) и сохранить без BOM.
Для избежания подобных проблем при создании дампа и его импорте лучше пользоваться родными средствами MySQL, см http://sqlinfo.ru/forum/viewtopic.php?id=583
3. Некорректная работа сайта.
Если во время работы сайта появляются ошибки синтаксиса, то, как правило, причина в установке вами сомнительных модулей к вашей cms. Лучшее решение — отказаться от их использования. Еще лучше предварительно проверять их работу на резервной копии.
Пример. Движок dle 7.2, поставили модуль ,вроде бы все Ок, но:
MySQL Error!
————————
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AND approve=’1‘ AND date < ‘2008-10-04 04:34:25‘ LIMIT 5’ at line 1
Error Number:
1064
SELECT id, title, date, category, alt_name, flag FROM dle_post WHERE MATCH (title, short_story, full_story, xfields, title) AGAINST (‘Приобретение и оплата скрипта ‘) AND id != AND approve=‘1’ AND date < ‘2008-10-04 04:34:25’ LIMIT 5
В данном примере мы видим, что причина ошибки в отсутствии значения после «id != «
Обратите внимание: из процитированного сервером MySQL куска запроса причина ошибки не ясна. Если ваша CMS не показывает весь запрос целиком, то нужно в скриптах найти место где выполняется данный запрос и вывести его на экран командой echo.
Кусок кода, который отвечает за данный запрос это
$db->query («SELECT id, title, date, category, alt_name, flag FROM « . PREFIX . «_post WHERE MATCH (title, short_story, full_story, xfields, title) AGAINST (‘$body’) AND id != «.$row[‘id’].» AND approve=’1′».$where_date.» LIMIT «.$config[‘related_number’]);
Далее можно искать откуда взялась переменная $row и почему в ней нет элемента ‘id’ и вносить исправления, но лучше отказаться от использования такого модуля (неизвестно сколько сюрпризов он еще принесет).
P.S. Если после прочтения статьи ваш вопрос с MySQL Error 1064 остался нерешенным, то задавайте его на форуме SQLinfo
Дата публикации: 25.11.2013
© Все права на данную статью принадлежат порталу SQLInfo.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в бумажных изданиях допускается только с разрешения редакции.
4
Пользователь создал 2 заказа подряд, с разницей в несколько секунд, во втором заказе отображается только доставка, товаров нет. Такое было и раньше, удаляли просто заказ и всё. А теперь мы даже в него зайти не можем, выскакивает такая ошибка.
В db.log вот что:
2020-03-22 21:23:45 109.252.36.200 Query Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') GROUP BY pc.id ORDER BY pc.name' at line 5 Query: SELECT pc.*, GROUP_CONCAT(tc.type_id SEPARATOR ',') AS type_ids FROM shop_product_code AS pc JOIN shop_type_codes AS tc ON tc.code_id=pc.id AND tc.type_id IN (0, ) GROUP BY pc.id ORDER BY pc.name ## wa-system/database/waModel.class.php(266) #0 wa-system/database/waModel.class.php(366): waModel->run('SELECT pc.*, GR...') #1 wa-system/database/waDbStatement.class.php(229): waModel->query('SELECT pc.*, GR...') #2 wa-system/database/waModel.class.php(346): waDbStatement->query(Array) #3 wa-apps/shop/lib/model/shopProductCode.model.php(40): waModel->query('SELECT pc.*, GR...', Array) #4 wa-apps/shop/lib/model/shopOrderItemCodes.model.php(33): shopProductCodeModel->getByType(Array) #5 wa-apps/shop/lib/classes/shopOrder.class.php(772): shopOrderItemCodesModel->extendOrderItems(Array) #6 wa-apps/shop/lib/classes/shopOrder.class.php(462): shopOrder->getItemsProductCodes() #7 wa-apps/shop/lib/classes/shopOrder.class.php(606): shopOrder->__get('items_product_c...') #8 wa-apps/shop/lib/workflow/shopWorkflowEditcodeAction.class.php(22): shopOrder->offsetGet('items_product_c...') #9 wa-apps/shop/lib/workflow/shopWorkflowState.class.php(93): shopWorkflowEditcodeAction->isAvailable(Object(shopOrder)) #10 wa-apps/shop/lib/classes/shopOrder.class.php(856): shopWorkflowState->getActions(Object(shopOrder)) #11 wa-apps/shop/lib/classes/shopOrder.class.php(460): shopOrder->readActions() #12 wa-apps/shop/lib/classes/shopOrder.class.php(907): shopOrder->__get('actions') #13 wa-apps/shop/lib/classes/shopOrder.class.php(460): shopOrder->readWorkflowActionElements() #14 wa-apps/shop/lib/actions/order/shopOrder.action.php(36): shopOrder->__get('workflow_action...') #15 wa-system/controller/waViewAction.class.php(161): shopOrderAction->execute() #16 wa-system/controller/waViewController.class.php(86): waViewAction->display() #17 wa-system/controller/waDefaultViewController.class.php(48): waViewController->executeAction(Object(shopOrderAction)) #18 wa-system/controller/waController.class.php(21): waDefaultViewController->execute() #19 wa-system/controller/waViewController.class.php(46): waController->run(NULL) #20 wa-system/controller/waFrontController.class.php(263): waViewController->run(NULL) #21 wa-system/controller/waFrontController.class.php(190): waFrontController->runController(Object(waDefaultViewController), NULL) #22 wa-system/controller/waFrontController.class.php(84): waFrontController->execute(NULL, 'order', NULL) #23 wa-system/waSystem.class.php(741): waFrontController->dispatch() #24 wa-system/waSystem.class.php(613): waSystem->dispatchBackend('webasyst/shop/') #25 index.php(7): waSystem->dispatch() #26 {main}
Что это и почему это?
21 комментарий
- популярные
- новые
-
+2Видимо было установлено последнее обновление Shop-script?
Ошибка указывает на неправильный запрос в базу данных. Связан он с таблицей
shop_type_codes
Точнее в этом месте запроса
AND tc.type_id IN (0, )
где после запятой отсутствует идентификатор.
Предполагаю, что данная ошибка связана с новым функционалом Товарных кодов, добавленным в последнем обновлении Shop-script.
Если заказ без товаров, то в нём нет и товарных кодов. Поэтому, скорее всего, и возникает ошибка. Разработчики, очевидно, предполагают, что не может быть заказа без товаров, что, в принципе, логично.
В Вашем случае нужно переделать функционал корзины, чтобы не допускать создание «пустых» заказов. Предполагаю, что они возникают из-за многократного нажатия на кнопку подтверждения оформления заказа в корзине, когда клиент не дожидается ответа сервера. Если так, то решением будет являться блокировка кнопки создания заказа после нажатия.
-
+1Да, именно после обновления такая фигня появилась.
А как сделать блокировку кнопки?
И как удалить этот висящий сейчас полузаказ?
-
+2А как сделать блокировку кнопки?
Это зависит от шаблона корзины Вашего сайта. Скорее всего, Вы используете не стандартную корзину, а какой-то плагин или отдельный шаблон корзины.Вероятно, потребуется найти js код, отвечающий за нажатие кнопки «Оформить заказ» и доработать его.
И как удалить этот висящий сейчас полузаказ?
Проще всего через базу данных найти заказ по идентификатору в таблице shop_order. Далее в поле state_id поменять значение на deleted.
Ещё можете попробовать такой вариант. Откройте заказ по прямой ссылке на редактирование
https://domain/webasyst/shop/?action=orders#/orders/edit/order_id/ domain - url сайта order_id - id заказа
Если откроется, то добавьте хотя бы один товар и сохраните. Далее уже удалите стандартно…
-
+1Спасибо! По ссылке для редактирования удалось добавить товар и после этого удалить заказ.
Да, мы используем плагин «Заказ на одной странице».
-
-
-
-
-
+1будем надеться, что починят, раз статус «принято» появился.
А вообще, у нас много косяков повылезало после последнего обновления.
-
-
+2Попробуйте в качестве быстрого исправления в файле wa-apps/shop/lib/model/shopProductCode.model.php перед строкой
$sql = "SELECT pc.*, GROUP_CONCAT(tc.type_id SEPARATOR ',') AS type_ids
добавить
if (!$type_id) { $type_id = 0; }
-
-
+1Мы выпустили обновление Shop-Script с исправлением этой ошибки. Обновление можно установить в «Инсталлере».
Проверьте, пожалуйста. Сообщите, если проблема сохранилась.
-
+1А можно сделать на уровне движка, а не шаблона, чтобы пользователь «тыркающий» несколько раз подряд на кнопку оформления заказа получал только один заказ, а не несколько?
-
+1Почему вы задаёте этот вопрос? В вашей теме дизайна нет блокировки повторного нажатия на кнопку оформления заказа?
-
+2За год мы сменили три разных дизайна и ни в одном не было блокировки. Штатного программиста нет, поэтому было бы очень удобно, чтобы такая функция была по умолчанию в скрипте движка.
-
0Напишите об этом разработчику темы дизайна, чтобы исправил недочёт в своём продукте.
-
-
+4Михаил, в многих темах дизайна, есть нормальные всплывающие окна, есть нормальный слайдер товаров (я про рекомендованные), но вы то зашиваете свое и без права редактирования. Если вы и берете все управление корзиной уже на свою сторону, тогда вносите все такие просьбы уже сами в свой код
-
-
+2А разве ничего? Вся корзина — встроена в движок. Речь про одностраничную само собой. Ваша идея и стремление, почему так сделано понятна, хоть и не идеальна. Вы полностью ее контролируете, дав нам, разработчикам, только подписываться на события. Если весь контроль и логика вшита в движок, то и будьте добры, продумайте все возможные проблемы, в том числе и блокировка повторного нажатия. Но нет же, вы перекладываете это на сторонних разработчиков.
P.S. что касательно списка рекомендуемых товаров. Вот клиент не хочет выводить список товаров, который подбирает движок. Не нравится карусель товаров, в которой он выводится. Что мне делать с этим кодом?
{$wa->shop->checkout()->crossSelling([ "DEBUG" => true, "wrapper" => "#js-cross-selling-section" ])}
как вырубить вашу карусель, как вырубить вашу подборку и вставить к примеру кастомный список товаров — документации нет, ибо и такой возможности нет.
Надеюсь я ответил на ваш вопрос
-
+1В какой теме дизайна возможно двойное нажатие на кнопку подтверждения заказа при оформлении заказа в корзине?
-
+2Этот вопрос должен быть адресован автору выше
А по сути какая разница? Это так сложно реализовать? К примеру если на момент оформления заказа, будет 500 ошибка, клиент этого не видит, и судорожно несколько раз жмет кнопку
-
-
-
-
-
+1С пошаговым оформление понятно. А как быть с оформлением в корзине?
-
+1Что именно вы хотите узнать?
-
+1Как именно при оформлении заказа в корзине блокируется и блокируется ли вообще двойное нажатие?
-
-
-
-
-
Добавить комментарий
If you’ve been using WordPress for a while, you may have decided to get into more advanced database management. This often involves using the MySQL command line, which can, in turn, lead to confusing problems such as MySQL 1064 errors.
Fortunately, while resolving this error can be confusing at first due to its many potential causes, its solutions tend to be relatively simple. Once you determine the reason behind the database error you’re seeing, you should be able to fix it fairly quickly.
In this post, we’ll cover the various possible causes of the MySQL 1064 error. Then we’ll share solutions for each common situation, to help you get your database and your site back up and running.
Let’s get started!
Why the MySQL 1064 Error Occurs
The MySQL 1064 error is a syntax error. This means the reason there’s a problem is because MySQL doesn’t understand what you’re asking it to do. However, there are many different situations that can lead to this type of miscommunication between you and your database.
The simplest cause is that you’ve made a mistake while typing in a command and MySQL can’t understand your request. Alternatively, you may be attempting to use outdated or even obsolete commands that can’t be read.
In other cases, you may have attempted to include a ‘reserved word’ in one of your commands. Reserved words are terms that can only be used in specific contexts in MySQL. If you attempt to use them in other ways, you’ll be faced with an error.
It’s also possible that there is some data missing from your database. When you make a request via MySQL which references data that isn’t where it’s supposed to be, you’ll also see the 1064 error. Finally, transferring your WordPress database to another server can also lead to the same issue.
As you can see, there are many potential causes for this problem, which can make it tricky to resolve. Unless you’re in the process of moving your database or taking some other action that points to a specific cause, you’ll likely need to try a few different solutions before you land on the right one. Fortunately, none of them are too difficult to execute, as we’ll see next.
Oh no, you’re getting the MySQL 1064 Error…😭 Don’t despair! Here are 5 proven solutions to get it fixed immediately 🙏Click to Tweet
How to Fix the MySQL 1064 Error (5 Methods)
If you already have an idea of what’s causing your MySQL 1064 error, you can simply skip down to the resolution for your specific situation. However, if you’re not sure why the error has occurred, the simplest strategy is to try the easiest solution first.
In that case, we’d suggest testing out the five most likely fixes in the following order.
1. Correct Mistyped Commands
The good thing about MySQL typos is that they’re the simplest explanation for syntax issues such as the 1064 error. Unfortunately, they can also be the most tedious to correct. Generally speaking, your best option is to manually proofread your code and look for any mistakes you may have made.
We suggest using the MySQL Manual as a reference while you do so, double-checking anything you’re not sure about. As you might imagine, this can get pretty time-consuming, especially if you’ve been working in the MySQL command line for a while or if you’re new to this task.
An alternative to manually checking your work is to employ a tool such as EverSQL:
With this solution, you can simply input your MySQL to check for errors automatically. However, keep in mind that these platforms aren’t always perfect and you may still want to validate the results yourself.
2. Replace Obsolete Commands
As platforms grow and change, some commands that were useful in the past are replaced by more efficient ones. MySQL is no exception. If you’re working on your database following a recent update or have referenced an outdated source during your work, it’s possible that one or more of your commands are no longer valid.
You can check to see whether this is the case using the MySQL Reference Manual. You’ll find mentions of commands that have been made obsolete by each MySQL version in the relevant sections:
Once you’ve determined which command is likely causing the problem, you can simply use the ‘find and replace’ function to remove the obsolete command and add in the new version. For example, if you were using storage_engine
and find that it no longer works, you could simply replace all instances with the new default_storage_engine
command.
3. Designate Reserved Words
In MySQL, using a reserved word out of context will result in a syntax error, as it will be interpreted as incorrect. However, you can still use reserved words however you please by containing them within backticks, like this: `select`
Each version of MySQL has its own reserved words, which you can read up on in the MySQL Reference Manual. A quick find and replace should enable you to resolve this issue if you think it may be causing your 1064 error.
4. Add Missing Data
If your latest MySQL query attempts to reference information in a database and can’t find it, you’re obviously going to run into problems. In the event that none of the preceding solutions resolves your MySQL 1064 error, it may be time to go looking for missing data.
Unfortunately, this is another solution that can be quite tedious and has to be done by hand. The best thing you can do in this situation is to work backward, starting with your most recent query. Check each database it references, and make sure all the correct information is present. Then move on to the next most recent query, until you come to the one that’s missing some data.
5. Use Compatibility Mode to Transfer WordPress Databases
This final 1064 error solution isn’t as straightforward as the others on our list. However, if you’re migrating your WordPress site to a new host or otherwise moving it to a different server, you’ll need to take extra steps to avoid causing problems with your database.
The simplest solution is to use a migration plugin that includes a compatibility mode, such as WP Migrate DB:
This will enable an auto-detection feature that will make sure your latest site backup and database are compatible with multiple versions of MySQL. You can access the compatibility mode setting by navigating to Tools > Migrate DB > Advanced Options:
Check the box next to Compatible with older versions of MySQL before starting your site migration. This way, you should be able to avoid any issues during the process.
Summary
Database errors can throw a wrench in your plans, and may even compromise your website’s stability. Knowing how to resolve issues such as the MySQL 1064 error can help you react quickly, and minimize downtime on your site.
There are five methods you can try to fix the MySQL 1064 error when you encounter it, depending on its most likely cause:
- Correct mistyped commands.
- Replace obsolete commands.
- Designate reserved words.
- Add missing data.
- Transfer WordPress databases in compatibility mode.
При появлении такой ошибки необходимо посмотреть журнал событий Logs
C:/Primo/WebApi/Logs
Если в Логах будет отображаться ошибка: The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server
Необходимо перепроверить настройки ConnectionStrings в конфигурационном файле
Либо переустановить WebApi по инструкции, которая прилагается к дистрибутиву, возможно что какой-то из компонентов Оркестратора не установлен. Последовательность установки компонентов
Primo RPA 2.2.22.0DocsWindowsРуководство по установке WebApi как службы под Windows 2016 Server.docx
For some reason and to come to speed with all the Veeam components, I decided to revive my Veeam Lab and during the process, I encountered the following error “Error 1064 – An exception occurred in the service when handling the control request : No connection can be made because the active machine rejected it “. Before I proceed to fix this issue, I would love to discuss the capabilities of Veeam for anyone that may stumble on this article.
Veeam Backup & Replication is comprehensive data protection and disaster recovery solution that provides a centralized console for administering backup, restore, replication operations in all supported platforms (virtual, physical, cloud). Regardless of what your needs are ranging from flexible hybrid cloud capabilities from AWS, Azure, and Google Cloud, or the most robust ransomware protection and recovery options. Veeam brings hardened immutable storage options, dependable cloud-native backup options, Continuous Data Protection, and much more all under one platform, with a single portable license for all workloads
Below are the images of the errors I get when i tried launching the Veeam Backup & Replication console.
The reason for this error was because my “SQL Server Evaluation period got expired”. This means, it exceeded the 180 days permitted. Also, I took a look at the log and found out that the Backup and Replication Server could not connect to the SQL Server as shown below.
[21.02.2022 21:59:45] <04> Info [db] Connecting to SQL Server (CurrentUser=[TECHDIRECTARCHIChristian], ServerInstance=[MBAMSERV1MBAM], Options=[Direct])
[21.02.2022 21:59:45] <04> Info [db] Removing 'Initial Catalog' property from connection string
[21.02.2022 22:01:45] <04> Info [DB|ERROR] Failed to connect to server . (Microsoft.SqlServer.Management.Common.ConnectionFailureException)
[21.02.2022 22:01:45] <04> Info [DB|ERROR] at Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
[21.02.2022 22:01:45] <04> Info [DB|ERROR] at Veeam.Backup.DBCreator.DatabaseConnector.Connect(DatabaseConnectorOptions options)
[21.02.2022 22:01:45] <04> Info [DB|ERROR] A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (System.Data.SqlClient.SqlException)
As you can see below, the error message from the Event Viewer with event ID 17051. Here is the link to my blogpost on how I resolved this issue.
To resolve this issues, I had to upgrade the SQL Server instance. here is a link to the complete blogpost.
- Launch the Open the SQL Server Installation Center and click on the Maintenance link. You can also launch this by launching setup.exe on MS SQL server installation media as well
Upon clicking on the Installation Center, the following window will open up. Then click on the Maintenance Tab, and then on Edition Upgrade
This will open up the “upgrade the Edition for SQL Server” window as shown below,
On the Product Key
page, select ”Enter the product key,
” and type the product key and click Next.
Accept the license terms and click Next.
Select the instance you want to upgrade. You can see the instance name and select that instance. In this case, MBAM
instance, which pointed out with evaluation. Select the instance and click Next.
On the ”Ready to upgrade edition” page, please click upgrade.
The upgrade process will take a few minutes to complete. Once the upgrade is completed, you will get a complete status, “succeeded”
Next, let’s ensure we are able to start our services again. As you can see, the services are running again.
Note: If you stop at here without granting the Veeam Backup Service the right privilege, you will also not be able to start the services, and launch the VBR console. To fix this, you will need to grant the Veeam Backup Service local administrative rights. Here is a link on this blogpost.
Upon granting this Log On rights, I was able to start the Veeam Backup and Replication Console.