Closed (works as designed)
Project:
Drupal core
Version:
5.1
Component:
install system
Priority:
Critical
Category:
Bug report
Assigned:
Reporter:
Created:
4 Feb 2007 at 20:33 UTC
Updated:
8 Feb 2007 at 00:45 UTC
Jump to comment: Most recent file
Comments
Comment #1
Crell commentedWell, no, we can't. Not unless you show us what the errors are. :-)
Comment #2
sepeck commentedand known answers are in the handbook here: http://drupal.org/Troubleshooting-FAQ
Comment #3
wavesound commentedHI
Thanks for the help
Re the errors I have sent them all many times, seems I'm sending them to support
and they dont show up.
I now realise you have to come here first.
Looking at the FAQ gives me a clue.
Here is the first attempt on my dev box server1
****************************************************
Fatal error: Table 'rokpadata.users' doesn't exist query: SELECT u.*, s.* FROM users u INNER JOIN sessions s ON u.uid = s.uid WHERE s.sid = 'd473a5ff7145759a4777919c0fda44ab' AND u.status < 3 LIMIT 0, 1 in /usr/share/drupal/includes/database.mysql.inc on line 125
***************************************
Is this telling me that the install script didnt build the DB?
On my Live server I get this:
**************************************
Warning: Table 'rokpadata.access' doesn't exist query: SELECT CASE WHEN status=1 THEN 0 ELSE 1 END FROM access WHERE type = 'host' AND LOWER('81.104.175.13') LIKE LOWER(mask) ORDER BY status DESC LIMIT 0, 1 in /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/database.mysql.inc on line 172
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/database.mysql.inc:172) in /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/bootstrap.inc on line 811
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/database.mysql.inc:172) in /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/bootstrap.inc on line 811
Warning: Table 'rokpadata.cache' doesn't exist query: SELECT data, created, headers, expire FROM cache WHERE cid = 'variables' in /home/4858/rokpacardiff/www.rokpacardiff.com/public_html/drupal-5/includes/database.mysql.inc on line 172
*********************************************
I assume that this is actually logging in and finding a db.
The DB is rokpadata and the user is
rokpauser
I'm trying to get the charity onto Drupal so they can update the site themselves, it's getting to big at:
www.rokpacardiff.com
Many thanks for your time
Bob
Comment #4
Crell commentedYes, it sounds like the database is not being created properly. I'm assuming that you're using Drupal 5.1, and if you're not you should be. :-) Refile this issue if that's not correct.
Make sure that the MySQL user you are using has permissions to create, alter, and drop tables, and has create temporary tables permission. It will need all of those for Drupal to function properly. If it doesn't, it won't be able to create the tables and you'll get errors like you're seeing.
If that doesn't do it, try doing a fresh install and then immediately go check your database to see if the tables it's talking about are there. If that, then that's a bug in the installer and we'll need to know your exact PHP version, MySQL version, Apache version, and the permissions your MySQL user has.
Comment #5
panchoI'm changing this to a critical bug report!
Currently, the install script allows colons (.) in the $db_prefix. However,
(see MySQL Reference Manual)
It is a safe assumption that SQL table names must begin with a letter (a-z) and may contain letters (a-z), digits (0-9) and underscores (_), but no other characters.
As the maximum length for the table name is 64, I propose limiting $db_prefix to 16 characters.
I enclose a patch against the HEAD version of install.php that enforces the correct validation check using the correct regular expression:
This bugfix should be ported to 4.7 as well.
Comment #6
Steven commentedActually, the problem here seems to be periods (.), not colons (:). And, there is a very good reason to allow them: in PGSQL, they are special prefixes whose name I can't remember, while in MySQL they can be used to share tables across databases.
If you enter "foo." as a prefix, it means all tables will be created in the "foo" database. This is not so useful for global prefixing, but useful for prefixing individual tables. Still, I think we should keep the '.' as allowed character.