2013-08-30 2 views
4
ERROR 1364: 1364: Field 'ssl_cipher' doesn't have a default value . 

SQL заявление:ОШИБКА 1364: 1364: Поле 'ssl_cipher' не имеет значения по умолчанию

INSERT INTO `samedaycrm4`.`users` (`Host`, `User`, `Password`) VALUES ('%', 'Bonnie', '*BB71B8925EED8E5387A872A38E566BFCB0F78071') 

Я пытаюсь определить причину ошибки Ошибка 1364: 1364: поле 'ssl_cipher' не имеет значения по умолчанию.?

Заранее спасибо ...

ответ

5

ssl_cipher столбца в таблице был отмечен non-null, но ваш INSERT запрос не предоставляет значение для него. MySQL будет пытаться присвоить значение по умолчанию в этих обстоятельствах, но ваш столбец не получил его.

Вам нужно либо установить значение по умолчанию для ssl_cipher или изменить таблицу таким образом, что ssl_cipher не помечена как non-null

+0

Я не понимаю, что вы говорите. Поле «Пароль» отмечено сейчас как NN для не null ... – Giuseppe

+0

Поле пароля прямо сейчас - VARCHAR (41) – Giuseppe

+0

Прочтите сообщение об ошибке: это столбец 'ssl_cipher', который вызывает проблему. –

3

// Это происходит из-за внутреннюю структуру пользовательской таблицы в базе данных MySQL (MySQL. пользователь) имеет много столбцов административных привилегий, которые принимают значение «N» или «Y», но не значение NULL. Не назначая эти значения в синтаксисе добавления пользователей методом INSERT, они будут предоставлять нулевые значения в таблице и, следовательно, произойдет ошибка 1364. // вместо использования синтаксиса GRANT не будет обладать никакими административными привилегиями для пользователя mysql> use mysql;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE 
     -> ON database.* //for all tables in DATABASE database 
     -> TO 'user'@'localhost' 
     -> IDENTIFIED BY 'password'; 

// пользователь получит созданный

-1

FYI проверить комментарий от "Сергей Голубчик" в https://bugs.mysql.com/bug.php?id=14579

[Это не выглядит как ошибка для меня. INSERT INTO mysql.user устарел с 3.23 - для добавления новых пользователей следует использовать GRANT или CREATE USER. Что касается ошибки GRANT в Windows, это дубликат BUG # 13989, который также является «Не ошибкой». ГРАНТ терпит неудачу, потому что в Windows, программа установки добавляет следующую строку в my.ini SQL-режим = "STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION" который предотвращает GRANT от Автосоздание пользователей.]

И, наконец, для реализации CREATE USER, вы можете найти по адресу -

https://dev.mysql.com/doc/refman/5.7/en/adding-users.html

Это должно решить вашу проблему, используя "CREATE USER" подход.

Смежные вопросы