правильный синтаксис для использования рядом с '' в строке 1 мой sql

0

Я знаю, что этот вопрос задавался довольно много раз, но, к сожалению, мне не удалось найти решение этой проблемы. Может быть, есть какая-то тривиальная вещь, которую мне не хватает.

Я экспортировал схему базы данных из workbench mysql и пытался создать базу данных из нее на машине linux. Однако, когда я запускаю скрипт, он выдает ошибку, как показано ниже:

ОШИБКА: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с '' в строке 1

Кроме того, я пробовал много комбинаций с кавычками и всеми. ниже - моя часть экспортированного файла sql.

CREATE DATABASE IF NOT EXISTS 'abcdata' /*!40100 DEFAULT CHARACTER SET utf8 */;
USE 'abcdata';
-- MySQL dump 10.13  Distrib 5.7.17, for Win64 (x86_64)
--
-- Host: localhost    Database: abcdata
-- ------------------------------------------------------
-- Server version   8.0.3-rc-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, 
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table 'databoard'
--

DROP TABLE IF EXISTS 'databoard';
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE 'databoard' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'hwunit_id' int(11) NOT NULL,
'brd_board_type' varchar(128) NOT NULL,
'brd_manufacturer' varchar(128) DEFAULT '""',
'brd_article_number' varchar(128) DEFAULT '""',
'brd_production_date' date DEFAULT NULL,
'brd_delivery_revision' varchar(128) DEFAULT '""',
'brd_present_revision' varchar(128) DEFAULT '""',
'brd_rev_date' varchar(32) DEFAULT '""',
'brd_made_the_last_rev' varchar(128) DEFAULT '""',
'brd_serial_number' varchar(128) DEFAULT '""',
'brd_slot_number' varchar(128) DEFAULT '""',
PRIMARY KEY ('id')    ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT 
 CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

как указано в строке 1.

  • 0
    Вы проверили, была ли база данных создана? Вы видите пустую базу данных?
  • 0
    Возможно проблема в символах конца строки. Попробуйте запустить dos2unix dump.sql вам может потребоваться установить dos2unix
Показать ещё 5 комментариев
Теги:
database
mariadb

2 ответа

0
Лучший ответ

Наконец, мне удалось найти решение, проблема заключалась в том, что я создал этот sql-дамп из workbench 6.3, который использует mysqldump.exe, но, несмотря на это, у меня была установлена эта MariaDb, которая ожидает различного синтаксиса.

Поэтому мне пришлось сделать дополнительный конвертировать, чтобы он соответствовал дампу sql с синтаксисом MariaDb. Разница заключается в файле до и после преобразования ниже:

До

CREATE DATABASE IF NOT EXISTS 'abcdata' /*!40100 DEFAULT CHARACTER SET utf8 
*/;
USE 'abcdata';
-- MySQL dump 10.13  Distrib 5.7.17, for Win64 (x86_64)
--
-- Host: localhost    Database: abcdata
-- ------------------------------------------------------
-- Server version   8.0.3-rc-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, 
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table 'databoard'
--

DROP TABLE IF EXISTS 'databoard';
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE 'databoard' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'hwunit_id' int(11) NOT NULL,
'brd_board_type' varchar(128) NOT NULL,
'brd_manufacturer' varchar(128) DEFAULT '""',
'brd_article_number' varchar(128) DEFAULT '""',
'brd_production_date' date DEFAULT NULL,
'brd_delivery_revision' varchar(128) DEFAULT '""',
'brd_present_revision' varchar(128) DEFAULT '""',
'brd_rev_date' varchar(32) DEFAULT '""',
'brd_made_the_last_rev' varchar(128) DEFAULT '""',
'brd_serial_number' varchar(128) DEFAULT '""',
'brd_slot_number' varchar(128) DEFAULT '""',
PRIMARY KEY ('id')    ) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT 
CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

После

-- MySQL dump 10.13  Distrib 5.7.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1    Database: abcdata
-- ------------------------------------------------------
-- Server version   8.0.3-rc-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, 
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: 'abcdata'
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ 'abcdata' /*!40100 DEFAULT 
CHARACTER SET utf8 */;
USE 'abcdata';
--
-- Table structure for table 'databoard'
--
DROP TABLE IF EXISTS 'databoard';
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE 'databoard' (  'id' int(11) NOT NULL AUTO_INCREMENT,  
'hwunit_id' int(11) NOT NULL,  'brd_board_type' varchar(128) NOT NULL,  
'brd_manufacturer' varchar(128) DEFAULT '""',  'brd_article_number' 
varchar(128) DEFAULT '""',  'brd_production_date' date DEFAULT NULL,  
'brd_delivery_revision' varchar(128) DEFAULT '""',  'brd_present_revision' 
varchar(128) DEFAULT '""',  'brd_rev_date' varchar(32) DEFAULT '""',  
'brd_made_the_last_rev' varchar(128) DEFAULT '""',  'brd_serial_number' 
 varchar(128) DEFAULT '""',  'brd_slot_number' varchar(128) DEFAULT '""',  
PRIMARY KEY ('id')) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

Базисно все утверждения преобразуются в одну строку вместо нескольких строк.

0

(У меня нет репутации, чтобы комментировать)

Я выполнил ваш запрос и 0 проблем.

Попробуйте удалить вашу базу данных.

  • 0
    не работает на моей стороне ... Я уже проверял это ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню