InnoDB aktivieren (Debian Etch)

neo2001
Posts: 40
Joined: 2002-09-12 19:04
Location: Bad Herrenalb

InnoDB aktivieren (Debian Etch)

Post by neo2001 »

Hallo an alle!

Bin gerade dabei mich mit SQL bzw. MySQL näher zu beschäftigen und wollte in dem Zusammenhang mal mit der InnoDB Engine herumspielen. Dazu habe ich das skip-innodb in der /etc/mysql/my.cnf enstprechend auskommentiert:

Code: Select all

#skip-innodb

Die Konfiguration entspricht ansonsten der Empfehlung hier aus dem Forum (Sticky Thread).

Den MySQL-Server hab ich danach neu gestartet.

Möchte ich die Storage-Engine einer Tabelle ändern, passiert aber folgendes:

Code: Select all

lrngsql@localhost [bank]> alter table account engine=innodb;
Query OK, 24 rows affected, 1 warning (0.00 sec)
Records: 24  Duplicates: 0  Warnings: 0

lrngsql@localhost [bank]> show warnings;
+---------+------+-------------------------------------------------+
| Level   | Code | Message                                         |
+---------+------+-------------------------------------------------+
| Warning | 1266 | Using storage engine MyISAM for table 'account' |
+---------+------+-------------------------------------------------+
1 row in set (0.00 sec)

lrngsql@localhost [bank]> show engine innodb status;
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined


Auch phpMyAdmin sagt: "InnoDB wurde auf diesem MySQL-Server deaktiviert."

Wo liegt mein Problem?
Top

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: InnoDB aktivieren (Debian Etch)

Post by daemotron »

Hast Du MySQL selbst übersetzt oder aus einem fertigen Paket installiert? Beim kompilieren kann man nämlich darüber entscheiden, welche Engines mit übersetzt werden sollen. Wenn Paket, dann welche Version/Distribution?

Außerdem solltest Du mal im Init-Skript oder per ps aux | grep mysqld nachschauen, mit welchen Optionen der mysqld gestartet wurde. Welche Konfigurationsdatei MySQL verwenden soll, wird beim Start des Daemons mit der Option --defaults-file=/pfad/zur/my.cnf mit übergeben. Nicht, dass Du am Ende die falsche Datei editiert hast...
Top

neo2001
Posts: 40
Joined: 2002-09-12 19:04
Location: Bad Herrenalb

Re: InnoDB aktivieren (Debian Etch)

Post by neo2001 »

Hallo jfreund,

es ist das normale MySQL-Serverpaket von Debian installiert, also weder selbst gebaut noch aus einer anderen Quelle bezogen.

Code: Select all

www:/etc/mysql# mysqld --version
mysqld  Ver 5.0.45-Debian_1-log for pc-linux-gnu on i486 (Debian etch distribution)


zunächst mal die Ausgabe von ps:

Code: Select all

ps aux | grep mysqld
root      3612  0.0  0.0   2600  1200 ?        S    Aug17   0:00 /bin/sh /usr/bin/mysqld_safe
mysql     3643  0.0  3.1 627764 63372 ?        Sl   Aug17   0:02 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root      5286  0.0  0.0   1760   576 pts/0    S+   15:37   0:00 grep mysqld

Hier scheint also explizit keine Konfigurationsdatei angegeben zu sein (?).

Ich hab dann mal noch folgendes ausgeführt:

Code: Select all

www:/etc/mysql# mysqladmin -uroot -p variables | grep innodb
Enter password:
| have_innodb                     | DISABLED                             |
| innodb_additional_mem_pool_size | 16777216                             |
| innodb_autoextend_increment     | 8                                    |
| innodb_buffer_pool_awe_mem_mb   | 0                                    |
| innodb_buffer_pool_size         | 402653184                            |
| innodb_checksums                | ON                                   |
| innodb_commit_concurrency       | 0                                    |
| innodb_concurrency_tickets      | 500                                  |
| innodb_data_file_path           | ibdata1:2000M;ibdata2:10M:autoextend |
| innodb_data_home_dir            | /var/lib/mysql                       |
| innodb_doublewrite              | ON                                   |
| innodb_fast_shutdown            | 1                                    |
| innodb_file_io_threads          | 4                                    |
| innodb_file_per_table           | OFF                                  |
| innodb_flush_log_at_trx_commit  | 1                                    |
| innodb_flush_method             |                                      |
| innodb_force_recovery           | 0                                    |
| innodb_lock_wait_timeout        | 120                                  |
| innodb_locks_unsafe_for_binlog  | OFF                                  |
| innodb_log_arch_dir             | /var/lib/mysql                       |
| innodb_log_archive              | OFF                                  |
| innodb_log_buffer_size          | 8388608                              |
| innodb_log_file_size            | 104857600                            |
| innodb_log_files_in_group       | 2                                    |
| innodb_log_group_home_dir       | /var/lib/mysql                       |
| innodb_max_dirty_pages_pct      | 90                                   |
| innodb_max_purge_lag            | 0                                    |
| innodb_mirrored_log_groups      | 1                                    |
| innodb_open_files               | 300                                  |
| innodb_rollback_on_timeout      | OFF                                  |
| innodb_support_xa               | ON                                   |
| innodb_sync_spin_loops          | 20                                   |
| innodb_table_locks              | ON                                   |
| innodb_thread_concurrency       | 8                                    |
| innodb_thread_sleep_delay       | 10000                                |


Dieses have_innodb DIASBLED irritiert mich etwas - aber wenn ich diese Option (have_innodb = 1) setze, startet der Server nicht mehr (was auch dafür sprechen würde, dass ich die richtige Konfigurationsdatei bearbeite).

Ist der InnoDB Support da etwa gar nicht eingebaut? Kann ich mir aber fast nicht vorstellen...
Top

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: InnoDB aktivieren (Debian Etch)

Post by kase »

War auf dem Server irgendwann schon mal INNODB aktiviert?

Es kommt des öfteren vor, dass das INNODB Verzeichnis fehlerhaft ist, der Support steht dann ohne Fehlermeldung auf disabled, obwohl er aktiviert ist.

Starte den mysqld mal manuell, ohne das Init Script:

Code: Select all

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock


Eventuell erscheinen dort Fehlermeldungen bezüglich innodb.
Top

neo2001
Posts: 40
Joined: 2002-09-12 19:04
Location: Bad Herrenalb

Re: InnoDB aktivieren (Debian Etch)

Post by neo2001 »

Danke für den Hinweis! :)

Der Server hat zwar auch so keine Fehlermeldung ausgegeben, aber nachdem ich die ib* Files in /var/lib/mysql manuell gelöscht hatte, ist InnoDB nun verfügbar.
Top