Jump to content
BulForum.com

mySQL скрипт проблем


Pisach

Recommended Posts

Искам да използвам едно програмче, което работи с 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 ама още повече грешки получих :sick

Нищо не разбирам от този mySQL и ако някой ми каже какво да го правя ще съм много благодарен....

Link to comment
Share on other sites

не че разбирам много от mySQL ама от грешката която дава значи че проблема е в този ред:

uid smallint(5) unsigned NOT NULL default 'mailnull',

провбай тва 'mailnull' да го направиш на 'mail' или 'null' :).

Пак казвам не разбирам от SQL и може да говоря глупости :bgrin:

 

ЕДИТ: абе тва за кво е в раздел 'Линукс' и как попаднах аз тук :D

Link to comment
Share on other sites

Ами защото дяволския скрипт се опитва да даде дефолт стойност стринг за поле от тип SMALLINT. Същото и за следващото поле. WTF?!

Link to comment
Share on other sites

uid smallint(5) unsigned NOT NULL default 'mailnull',

Просто ви казва че се опитвате да вкарате квадратно нещо (низа 'mailnull') в кръгла дупка (uid smallint(5)).

Link to comment
Share on other sites

Просто ви казва че се опитвате да вкарате квадратно нещо (низа 'mailnull') в кръгла дупка (uid smallint(5)).

 

т.е mailnull трябва да е число ли? :confused

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...