Below query I’m executing in Ubuntu 12, MySQL 5.1 version and receiving error as mentioned:
CREATE TABLE mantis_config_table (
config_id VARCHAR(64) NOT NULL,
project_id INTEGER NOT NULL DEFAULT 0,
user_id INTEGER NOT NULL DEFAULT 0,
access_reqd INTEGER DEFAULT 0,
type INTEGER DEFAULT 90,
value LONGTEXT NOT NULL,
PRIMARY KEY (config_id, project_id, user_id)
) TYPE=MyISAM;
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’ at line 9
Can anyone suggest what’s wrong?
#1 27.08.2013 11:50:15
- serjey
- Участник
- Зарегистрирован: 27.08.2013
- Сообщений: 5
Ошибка которая не решается никак(((
Здравствуйте! Обращаюсь к Вам за помощью разобраться с моей проблемой: не получается импортировать базу данных с хостинга на локальный сервер(просто сайт слетел, а базы рабочие, хочу установить новый движок и ипортировать инфо с баз данных ) но у меня постоянно выскакивает вот такое:
SQL-запрос:
—
— База данных: `ftforum_db3`
—
— ———————————————————
—
— Структура таблицы `bb_acl_groups`
—
CREATE TABLE IF NOT EXISTS `bb_acl_groups` (
`group_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`forum_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_option_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_role_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_setting` tinyint( 2 ) NOT NULL DEFAULT ‘0’,
KEY `group_id` ( `group_id` ) ,
KEY `auth_opt_id` ( `auth_option_id` ) ,
KEY `auth_role_id` ( `auth_role_id` )
) TYPE = MYISAM ;
Ответ MySQL:
#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 ‘TYPE=MyISAM’ at line 20
Я уже изменял кодировку Utf-8 БЕЗ bom, ставил совместимость MySQL 4.0 но всёравно ничего не получается(( Подскажите мне пожалуйста что еще можно сделать!
Неактивен
#2 27.08.2013 11:58:56
- deadka
- Администратор
- Зарегистрирован: 14.11.2007
- Сообщений: 2412
Re: Ошибка которая не решается никак(((
type=myisam — устаревший вариант, попробуйте вместо engine=myisam
Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…
Неактивен
#3 27.08.2013 12:02:20
- serjey
- Участник
- Зарегистрирован: 27.08.2013
- Сообщений: 5
Re: Ошибка которая не решается никак(((
Извините, а где это выбрать нужно? я просто не очень разбираюсь..
Неактивен
#4 27.08.2013 12:15:19
- deadka
- Администратор
- Зарегистрирован: 14.11.2007
- Сообщений: 2412
Re: Ошибка которая не решается никак(((
В файле, который Вы привели в первом посте, там есть запрос
CREATE TABLE IF NOT EXISTS `bb_acl_groups` (
`group_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`forum_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_option_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_role_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_setting` tinyint( 2 ) NOT NULL DEFAULT ‘0’,
KEY `group_id` ( `group_id` ) ,
KEY `auth_opt_id` ( `auth_option_id` ) ,
KEY `auth_role_id` ( `auth_role_id` )
) TYPE = MYISAM ;
Замените в нем type на engine, как я и написал выше.
Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…
Неактивен
#5 27.08.2013 12:23:25
- serjey
- Участник
- Зарегистрирован: 27.08.2013
- Сообщений: 5
Re: Ошибка которая не решается никак(((
Очень жаль, но всеравно такая же ошибка!
Неактивен
#6 27.08.2013 12:39:45
- deadka
- Администратор
- Зарегистрирован: 14.11.2007
- Сообщений: 2412
Re: Ошибка которая не решается никак(((
Хмм… У меня mysql версия 5.1.52 и запрос
CREATE TABLE IF NOT EXISTS `bb_acl_groups` (
`group_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`forum_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_option_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_role_id` mediumint( 8 ) unsigned NOT NULL DEFAULT ‘0’,
`auth_setting` tinyint( 2 ) NOT NULL DEFAULT ‘0’,
KEY `group_id` ( `group_id` ) ,
KEY `auth_opt_id` ( `auth_option_id` ) ,
KEY `auth_role_id` ( `auth_role_id` )
) engine = MYISAM ;
отрабатывается без ошибок.
Что возвращает запрос
select version();
?
И попробуйте запустите приведенный мной запрос, если опять ошибка, приведите полный текст ошибки.
Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…
Неактивен
#7 27.08.2013 12:45:38
- serjey
- Участник
- Зарегистрирован: 27.08.2013
- Сообщений: 5
Re: Ошибка которая не решается никак(((
Сделал все так как у Вас и вот опять ошибка:
SQL-запрос:
— ———————————————————
—
— Структура таблицы `bb_acl_options`
—
CREATE TABLE IF NOT EXISTS `bb_acl_options` (
`auth_option_id` mediumint( 8 ) unsigned NOT NULL AUTO_INCREMENT ,
`auth_option` varchar( 50 ) BINARY NOT NULL DEFAULT »,
`is_global` tinyint( 1 ) unsigned NOT NULL DEFAULT ‘0’,
`is_local` tinyint( 1 ) unsigned NOT NULL DEFAULT ‘0’,
`founder_only` tinyint( 1 ) unsigned NOT NULL DEFAULT ‘0’,
PRIMARY KEY ( `auth_option_id` ) ,
UNIQUE KEY `auth_option` ( `auth_option` )
) TYPE = MYISAM AUTO_INCREMENT =118;
Ответ MySQL:
#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 ‘TYPE=MyISAM AUTO_INCREMENT=118’ at line 15
Только я не пойму почему оно пишет: TYPE = MYISAM AUTO_INCREMENT =118; вместо: engine = MYISAM как я и заменил?
Неактивен
#8 27.08.2013 12:54:46
- deadka
- Администратор
- Зарегистрирован: 14.11.2007
- Сообщений: 2412
Re: Ошибка которая не решается никак(((
Видимо Вы не заменили type на engine — не будет же mysql-сервер сам подменивать обратно engine на type, чтобы «возыметь моральное право» снова ругаться, не так ли ?
Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…
Неактивен
#9 27.08.2013 13:01:35
- serjey
- Участник
- Зарегистрирован: 27.08.2013
- Сообщений: 5
Re: Ошибка которая не решается никак(((
И вот еще что, когда загружаю файл без сжатия то вылазит вообще такое вот:
Warning: POST Content-Length of 24880687 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Вероятно, размер загружаемого файла слишком велик. Способы обхода данного ограничения описаны в документации.
Я что то вообще ничего не могу понять, много раз уже импортировал данные все получалось, а здесь ничего не получается((
Неактивен
#10 27.08.2013 13:36:18
- vasya
- Архат
- Откуда: Орел
- Зарегистрирован: 07.03.2007
- Сообщений: 5817
Re: Ошибка которая не решается никак(((
Это ошибка phpadmina. Добавьте в конфигурационный файл config.inc.php строку:
$cfg[‘UploadDir’] = ‘./upload’;
Создайте в корне phpadmina пустой каталог upload и загрузите в него дамп, после чего он появится в выпадающем списке на странице импорта.
Но лучше пользоваться родными средствами mysql:
http://sqlinfo.ru/forum/viewtopic.php?id=583
Неактивен
Недавно при импорте структуры базы данных в MySQL 5.5, получил ошибку
'ERROR 1064 (42000) at line 4: 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' at line 18
Погуглив выяснилось, что в версии 5.5 изменился синтакс с TYPE=MyISAM на
ENGINE=MyISAM
Заменив в файле со структурой БД все TYPE=MyISAM на ENGINE=MyISAM, импорт прошел успешно.
З.Ы. хз, настораживает последняя версия мускула 🙂
Поделиться ссылкой на статью
To fix the error, you just need to replace TYPE with ENGINE. The syntax to set the engine is as follows −
ENGINE = MyISAM;
The MySQL error occurs when TYPE is used. Let us see the same scenario while creating a table −
mysql> create table Customers −> ( −> CustomerId int, −> CustomerName varchar(200) −> )TYPE = MyISAM;
The error is as follows −
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 'TYPE = MyISAM' at line 5
To resolve the above error, replace TYPE with ENGINE as shown below −
mysql> create table Customers −> ( −> CustomerId int, −> CustomerName varchar(200) −> )ENGINE = MyISAM; Query OK, 0 rows affected (0.24 sec)
The “ENGINE = MyISAM” in MySQL updates successfully.
There’s nothing worse for a developer than an SQLException in Hibernate and JPA. And there’s nothing more annoying than when the SQLException happens before any of the persistence code even runs. But that’s exactly what happens if a developer sees the ‘type=MyISAM’ SQLSyntaxErrorException when you ask the JPA framework to build a database for you. The whole MySQL database creation script runs out of steam before it even starts.
The main issue at hand in this scenario is an old dialect class that’s incompatible with the MySQL installation. A developer can fix the ‘type=MyISAM’ SQLSyntaxErrorException issue with a dialect update. If a developer has a reference to the MySQLDialect and the MySQL database is newer than version 5, this SQLSyntaxErrorException problem will occur.
Update the persistence.xml with MySQL8Dialect
If a developer uses the persistence.xml file, the dialect is set as one of the properties:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" >
<persistence-unit name="jpa-tutorial">
<properties>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost/hibernate_examples"/>
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQL8Dialect" />
<property name = "javax.persistence.schema-generation.database.action" value = "drop-and-create" />
</properties>
</persistence-unit>
</persistence>
The error will go away if you update the persistence.xml file and use the correct MySQL dialect for the installation.
Fix the Hibernate MySQL MyISAM type error with the correct dialect.
The MySQL dialect and JDBC code
If a developer uses the Hibernate SchemaExport class, or even just writes MySQL JDBC code, they’ll need to dig into the Java code to properly update the dialect:
Map<String, String> settings = new HashMap<>(); settings.put("connection.driver_class", "com.mysql.jdbc.Driver"); settings.put("dialect", "org.hibernate.dialect.MySQL8Dialect"); settings.put("hibernate.connection.url", "jdbc:mysql://localhost/hibernate_examples");
Hibernate MySQLDialect classes
In the Hibernate 5.4 version distribution, developers can choose from the following list of MySQL dialects:
- MySQL55Dialect
- MySQL57Dialect
- MySQL57InnoDBDialect
- MySQL5Dialect
- MySQL8Dialect
- MySQLDialect
- MySQLInnoDBDialect
- MySQLISAMDialect
Choose the right dialect for your database, and the MySQL ‘type=MyISAM’ SQLSyntaxErrorException will disappear for good.