Pisach Posted February 8, 2007 Share Posted February 8, 2007 Искам да използвам едно програмче, което работи с mySQL, като на края на инсталацията трябва да импрортна готова структура на mySQL база данни т.е. #mysql -u user -p < mysql.sql, но получавам следната грешка: ERROR 1067 (42000) at line 3: Invalid default value for 'uid' Ето го и самия код: CREATE DATABASE IF NOT EXISTS vexim; DROP TABLE IF EXISTS vexim.domains; CREATE TABLE IF NOT EXISTS vexim.domains (domain_id mediumint(8) unsigned NOT NULL auto_increment, domain varchar(64) NOT NULL default '', maildir varchar(128) NOT NULL default '', uid smallint(5) unsigned NOT NULL default 'mailnull', gid smallint(5) unsigned NOT NULL default 'mail', max_accounts int(10) unsigned NOT NULL default '0', quotas int(10) unsigned NOT NULL default '0', type varchar(5) default NULL, avscan bool NOT NULL default '0', blocklists bool NOT NULL default '0', complexpass bool NOT NULL default '0', enabled bool NOT NULL default '1', mailinglists bool NOT NULL default '0', maxmsgsize mediumint(8) unsigned NOT NULL default '0', pipe bool NOT NULL default '0', spamassassin bool NOT NULL default '0', sa_tag smallint(5) unsigned NOT NULL default '0', sa_refuse smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (domain_id), UNIQUE KEY domain (domain), KEY domain_id (domain_id), KEY domains (domain)); DROP TABLE IF EXISTS vexim.users; CREATE TABLE IF NOT EXISTS vexim.users (user_id int(10) unsigned NOT NULL auto_increment, domain_id mediumint(8) unsigned NOT NULL, localpart varchar(192) NOT NULL default '', username varchar(255) NOT NULL default '', clear varchar(255) default NULL, crypt varchar(48) default NULL, uid smallint(5) unsigned NOT NULL default '65534', gid smallint(5) unsigned NOT NULL default '65534', smtp varchar(255) default NULL, pop varchar(255) default NULL, type enum('local','alias','catch', 'fail', 'piped', 'admin', 'site') NOT NULL default 'local', admin bool NOT NULL default '0', on_avscan bool NOT NULL default '0', on_blocklist bool NOT NULL default '0', on_complexpass bool NOT NULL default '0', on_forward bool NOT NULL default '0', on_piped bool NOT NULL default '0', on_spamassassin bool NOT NULL default '0', on_vacation bool NOT NULL default '0', enabled bool NOT NULL default '1', flags varchar(16) default NULL, forward varchar(255) default NULL, maxmsgsize mediumint(8) unsigned NOT NULL default '0', quota int(10) unsigned NOT NULL default '0', realname varchar(255) default NULL, sa_tag smallint(5) unsigned NOT NULL default '0', sa_refuse smallint(5) unsigned NOT NULL default '0', tagline varchar(255) default NULL, vacation varchar(255) default NULL, PRIMARY KEY (user_id), UNIQUE KEY username (localpart,domain_id), KEY local (localpart)); DROP TABLE IF EXISTS vexim.blocklists; CREATE TABLE IF NOT EXISTS vexim.blocklists (block_id int(10) unsigned NOT NULL auto_increment, domain_id mediumint(8) unsigned NOT NULL, user_id int(10) unsigned default NULL, blockhdr varchar(192) NOT NULL default '', blockval varchar(192) NOT NULL default '', color varchar(8) NOT NULL default '', PRIMARY KEY (block_id)); CREATE TABLE IF NOT EXISTS domainalias (domain_id mediumint(8) unsigned NOT NULL, alias varchar(64)); GRANT SELECT,INSERT,DELETE,UPDATE ON vexim.* to vexim@localhost IDENTIFIED BY 'pass'; FLUSH PRIVILEGES; INSERT INTO vexim.domains (domain_id, domain) VALUES ('1', 'admin'); -- Uncomment the following lines by removing the initial '--', if your system uses MD5 passwords: -- INSERT INTO vexim.users (domain_id, localpart, username, clear, crypt, uid, gid, smtp, pop, realname, type, admin) -- VALUES ('1', 'siteadmin', 'siteadmin', 'CHANGE', '$1$12345678$2lQK5REWxaFyGz.p/dos3/', '65535', '65535', '', '', 'SiteAdmin', 'site', '1'); -- Uncomment the following lines by removing the initial '--', if your system uses DES passwords: -- INSERT INTO vexim.users (domain_id, localpart, username, clear, crypt, uid, gid, smtp, pop, realname, type, admin) -- VALUES ('1', 'siteadmin', 'siteadmin', 'CHANGE', '0Apup3ZbF9RPg', '65535', '65535', '', '', 'SiteAdmin', 'site', '1'); Ползвам следният mySQL: mysql Ver 14.12 Distrib 5.0.27, for portbld-freebsd6.1 (i386) До колкото разбрах, това е писано за различна версия на mySQL, при която auto_increment не се понася с default . Овитах се да махна всички default ама още повече грешки получих Нищо не разбирам от този mySQL и ако някой ми каже какво да го правя ще съм много благодарен.... Link to comment Share on other sites More sharing options...
midas Posted February 8, 2007 Share Posted February 8, 2007 не че разбирам много от mySQL ама от грешката която дава значи че проблема е в този ред: uid smallint(5) unsigned NOT NULL default 'mailnull', провбай тва 'mailnull' да го направиш на 'mail' или 'null' . Пак казвам не разбирам от SQL и може да говоря глупости ЕДИТ: абе тва за кво е в раздел 'Линукс' и как попаднах аз тук Link to comment Share on other sites More sharing options...
tedy Posted February 8, 2007 Share Posted February 8, 2007 Ами защото дяволския скрипт се опитва да даде дефолт стойност стринг за поле от тип SMALLINT. Същото и за следващото поле. WTF?! Link to comment Share on other sites More sharing options...
peja Posted February 8, 2007 Share Posted February 8, 2007 irc://irc.freenode.net #mysql Link to comment Share on other sites More sharing options...
georgekodinov Posted February 9, 2007 Share Posted February 9, 2007 uid smallint(5) unsigned NOT NULL default 'mailnull', Просто ви казва че се опитвате да вкарате квадратно нещо (низа 'mailnull') в кръгла дупка (uid smallint(5)). Link to comment Share on other sites More sharing options...
Pisach Posted February 9, 2007 Author Share Posted February 9, 2007 Просто ви казва че се опитвате да вкарате квадратно нещо (низа 'mailnull') в кръгла дупка (uid smallint(5)). т.е mailnull трябва да е число ли? Link to comment Share on other sites More sharing options...
tedy Posted February 12, 2007 Share Posted February 12, 2007 да, от 1 до 2^15 Всъщност от 0 до (2^16)-1 . Предполага се, че може да напишеш default 0; Link to comment Share on other sites More sharing options...
Pisach Posted February 13, 2007 Author Share Posted February 13, 2007 Мерси, усетих се аз, защото се пише не UID номер, а не име .....и влезе като у дома си! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.