public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Kerin Millar <kerframil@fastmail.co.uk>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] [slightly O/T] mysql problems
Date: Wed, 15 Oct 2014 13:41:03 +0100	[thread overview]
Message-ID: <543E6B5F.8050900@fastmail.co.uk> (raw)
In-Reply-To: <201410151305.18439.michaelkintzios@gmail.com>

On 15/10/2014 13:05, Mick wrote:
> On Wednesday 15 Oct 2014 02:14:37 Kerin Millar wrote:
>> On 14/10/2014 23:25, Mick wrote:
>>> On Tuesday 14 Oct 2014 21:15:48 Kerin Millar wrote:
>
>>>>      * Have you upgraded MySQL recently without going through the
>>>>        documented upgrade procedure? [1]
>>>
>>> I'm still on mysql-5.5.39
>>
>> OK. If it has always been running MySQL 5.5, there's nothing to be
>> concerned about.
>
> No, sorry I wasn't clear.  I have been upgrading mysql on this machine for
> some years now, always running stable versions.  After each update I run:
>
> mysql_upgrade -h localhost -u root -p
>
>
>>>>      * Have you otherwise removed or modified files in the data
>>>>      directory?
>>>
>>> Not as far as I know.  I have suspicions of fs corruption though (it's
>>> been running out of space lately and I haven't yet found out why).
>>
>> Not good. Which filesystem, if I may ask? XFS is preferable, due to its
>> very good performance with O_DIRECT, which ext4 coming in second. Other
>> filesystems may be problematic. In particular, ZFS does not support
>> asynchronous I/O.
>
> ext4
>
>
>> In any case, go into /var/lib/mysql and check whether the file that it
>> mentions exists. If it does not exist, try running:
>>
>>     DROP TABLE `website1@002dnew`.`webform_validation_rule_components`
>>
>> If that does not work then try again, using DISCARD TABLESPACE as
>> opposed to DROP TABLE. Note that the backtick quoting is necessary
>> because of the presence of the @ symbol in the database name, which
>> would otherwise be misinterpreted.
>
> Hmm ... I'm probably not doing this right.
>
> First of all, there is no local database /var/lib/mysql/website1, because this
> is the live website name, on the shared server.  I only have
> /var/lib/mysql/website_test on the local dev machine.
>
> Then although I can see, e.g.
>
> -rw-rw----  1 mysql mysql     8939 Oct 14 19:25 actions.frm
> -rw-rw----  1 mysql mysql    98304 Oct 14 19:25 actions.ibd
>
> in /var/lib/mysql/website_test, if I try to run DROP TABlE, logged in as
> (mysql) root, I get an unknown table, error 1051.
>
> =========================
> mysql> USE website_test;
> Reading table information for completion of table and column names
> You can turn off this feature to get a quicker startup with -A
>
> Database changed
> mysql> DROP TABLE `website1@002dnew`.`actions`;

Is this a table for which it is also complaining that a corresponding 
tablespace doesn't exist in database `website1@@002dnew`? Your original 
post mentioned only a table named `webform_validation_rule_components`.

Whichever table(s) it is complaining about, if you happen to find a 
corresponding .idb file in a different database (sub-directory), you 
might be able to satisfy MySQL by copying it to where it is expecting to 
find it. If that works, you should then be able to drop it.

Sometimes, directly copying an InnoDB tablespace into place requires a 
more elaborate procedure but I won't muddy the waters by describing said 
procedure just yet.

> ERROR 1051 (42S02): Unknown table 'actions'
> mysql> DISCARD TABLESPACE `website1@002dnew`.`actions`;
> ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
> that corresponds to your MySQL server version for the right syntax to use near
> 'DISCARD TABLESPACE `website1@002dnew`.`actions`' at line 1
> =========================
>
> I think in mysql-5.5 I should be using DROP TABLESPACE instead?
>

My mistake. The correct syntax for discarding the tablespace would be:

   ALTER TABLE <table> DISCARD TABLESPACE;

I'm stating the obvious here, but be sure not to DROP or DISCARD 
TABLESPACE on a table whose tablespace does exist and for which you do 
not have a backup. Both commands are destructive.

--Kerin


  reply	other threads:[~2014-10-15 12:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-14 18:54 [gentoo-user] [slightly O/T] mysql problems Mick
2014-10-14 19:21 ` Daniel Frey
2014-10-14 21:39   ` Mick
2014-10-14 20:15 ` Kerin Millar
2014-10-14 22:25   ` Mick
2014-10-15  1:14     ` Kerin Millar
2014-10-15 12:05       ` Mick
2014-10-15 12:41         ` Kerin Millar [this message]
2014-10-15 20:40           ` Mick
2014-10-16  6:24             ` J. Roeleveld
2014-10-17 23:17               ` Mick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=543E6B5F.8050900@fastmail.co.uk \
    --to=kerframil@fastmail.co.uk \
    --cc=gentoo-user@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox