Can't Install - MySQL "used table type" Error Can't Install - MySQL "used table type" Error
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Can't Install - MySQL "used table type" Error

Started by disgruntled, June 11, 2006, 10:42:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

disgruntled

Coppermine version:  1.4.8
Server: Windows XP, localhost development server running Apache 2.0.54 and MySQL 4.1.13

I just downloaded Coppermine 1.4.8 and get an error when I try to install it.  The error is:

mySQL Error: The used table type doesn't support BLOB/TEXT columns on query ' CREATE TABLE `cpg148_favpics` ( `user_id` INT( 11 ) NOT NULL , `user_favpics` TEXT NOT NULL , PRIMARY KEY ( `user_id` ) ) COMMENT = 'Stores the server side favourites''

What the heck do I do now?  A while ago on a different machine I downloaded and installed CPG 1.4.2 and it installed fine.  But now I can't get this to work. 

How do I resolve this?  My production server is running Linux and Apache.  I have a lot of work to do on the template to integrate the look and graphics into my website, so I don't want to have to develop on the remote production server.  I want to develop locally.

I can't do anything until I figure out what is responsible for this error.  Please help.  I really want to get this done and over with. 

Thank you.


Joachim Müller

Make sure that your mysql service is set up to allow myisam tables. The error message you got indicates that you're using heap tables. Googling for your error message leads to http://www.databasejournal.com/features/mysql/article.php/3077531

disgruntled

Quote from: GauGau on June 11, 2006, 10:58:08 AM
Make sure that your mysql service is set up to allow myisam tables. The error message you got indicates that you're using heap tables. Googling for your error message leads to http://www.databasejournal.com/features/mysql/article.php/3077531
Thank you for your reply. 

However, my MySQL installation IS set up to use MyISAM tables by default.  Also, when I look in the database that I created, I do see some cpgxx_ tables created that are set to use the MyISAM engine.  I have SMF running as well on my development set-up and it uses MyISAM tables as well.

Do you have any other ideas as to what could cause that error?

Also, do you think I could just create the tables manually?  Or are there other things that the Coppermine installer has to do that I don't know about?

Joachim Müller

You can perform a manual install by running the queries inside the files that reside in coppermine's sql folder (mind the table prefix!). You'll have to create/change include/config.inc.php and include/install.lock. That's basically all the installer does.
The error message you get is not an error message, but from mysql - coppermine just displays what the mysql db "says", so I suggest googling some more for your error message. I'm convinced that the reason for the error message is a flaw in your mysql setup.

disgruntled

Quote from: GauGau on June 11, 2006, 02:09:13 PM
You'll have to create/change include/config.inc.php and include/install.lock.
OK, now you lost me.

I see config.inc.php and the settings are correct with the DB user and pass.  So that one is OK.  But what about install.lock?  I see reference to it in install.php, but I have no idea what is actually in the install.lock file.  Is it install.php renamed and placed in the /include folder?

In this post:

http://forum.coppermine-gallery.net/index.php?topic=25659.0

It looks like the only think in the install.lock file is the text "locked".  But that's for an earlier version.  Is there more to it than this?

(Thanks again for your help this Sunday.)

Joachim Müller

no, nothing more to it. Coppermine just checks if the file exists if someone accesses the installer - if install.lock exists, it assumes that the installer has already been run and quits. This way, malevolent users are being kept from re.running install.php. Other apps require you to remove install.php after having performed an install - many users forget to do this, that's why we implemented the install.lock option.
install.lock can be an empty text file

disgruntled

I figured out what the problem was that prevented Coppermine 1.4.8 from installing.  The following queries in schema.sql are missing the "TYPE=MyISAM" clause.  Even though the default table type for my particular installation of MySQL is MyISAM, the absence of the TYPE clause prevented the installation from being successful.  Once I put in the missing TYPE statements, all worked fine. 

Below are the 3 queries missing the TYPE in schema.sql.


#
# Table structure for table `CPG_favpics`
#

CREATE TABLE `CPG_favpics` (
`user_id` INT( 11 ) NOT NULL ,
`user_favpics` TEXT NOT NULL ,
PRIMARY KEY ( `user_id` )
) COMMENT = 'Stores the server side favourites';

#
# Table structure for table `CPG_vote_stats`
#
CREATE TABLE `CPG_vote_stats` (
  `sid` int(11) NOT NULL auto_increment,
  `pid` varchar(100) NOT NULL default '',
  `rating` smallint(6) NOT NULL default '0',
  `ip` varchar(20) NOT NULL default '',
  `sdate` bigint(20) NOT NULL default '0',
  `referer` text NOT NULL,
  `browser` varchar(255) NOT NULL default '',
  `os` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`sid`)
);

CREATE TABLE `CPG_hit_stats` (
  `sid` int(11) NOT NULL auto_increment,
  `pid` varchar(100) NOT NULL default '',
  `ip` varchar(20) NOT NULL default '',
  `search_phrase` varchar(255) NOT NULL default '',
  `sdate` bigint(20) NOT NULL default '0',
  `referer` text NOT NULL,
  `browser` varchar(255) NOT NULL default '',
  `os` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`sid`)
);


Joachim Müller

Thanks for resolving this issue. Added missing table type info to stable and devel branch of SVN.