2009-07-30 10 views
1

Je tente de se connecter à distance à une base de données MySQL en utilisant ruby ​​sur rails.ruby ​​on rails base de données distante connexion MySQL La fonction 'InnoDB' est désactivée erreur

Dans mon database.yml:

development: 
adapter: mysql 
database: peer 
host: host 
port: 3306 
username: root 
password: password 

je vais donc faire un râteau db: migrate et obtenez cette erreur

Mysql::Error: The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB 

Maintenant, après quelques recherches, je trouve que cela était une erreur sur Windows Servers avec MySQL et je devais aller dans le fichier my.ini et commenter skip-innodb. Quand je suis allé faire cela, cette ligne n'était pas dans ce fichier, mais dans un autre nommé "my-innodb-heavy-4g.ini"

J'ai trouvé la commande dans la ligne, mais elle a déjà été commentée en dehors. Et maintenant je ne sais plus quoi faire ensuite.

Cette application va être connectée à plusieurs bases de données, je voulais juste voir si je pouvais d'abord me connecter à la télécommande.

+0

Veuillez publier la version du système d'exploitation, version MySQL, comment l'avez-vous installé (installation binaire) Ceci n'est pas un problème Rails –

+0

Windows Server 2008. Voir ci-dessous pour d'autres informations. Je suppose qu'ils l'ont installé avec le paquet d'installation. – Ryan

Répondre

1

Arrêtez MySQL, renommez my.ini en autre chose, renommez "my-innodb-heavy-4g.ini" en my.ini, redémarrez MySQL. En supposant, bien sûr, que votre serveur MySQL a été construit avec InnoDB en premier lieu.

Édition: il semble que l'OP utilise un serveur délibérément construit sans le support d'InnoDB. Voir par exemple here, un manuel de référence 5.0 sous la rubrique "2.3.2 Types de distribution Enterprise Server.":

  • Cette section ne s'applique à MySQL Utilisateurs Community Server.

    ...

    mysql-classique: Distribué sous licence commerciale, ne comprend pas InnoDB.

... et l'affiche indique maintenant que leur serveur est en effet un 5.0 "mysql-classic". Il semble donc que la seule façon d'utiliser InnoDB dans ces conditions est de mettre à niveau le serveur vers quelque chose de plus fonctionnel (et idéalement un peu plus récent, mais ce n'est pas grave).

+0

Essayé cela, n'a pas fonctionné. Je ne pouvais pas redémarrer le service après avoir renommé le fichier. J'ai également ajouté les commandes InnoDB dans le fichier my.ini et j'ai eu une erreur en essayant de démarrer le service avec les nouvelles commandes. – Ryan

+0

On dirait que vous avez peut-être un binaire MySQL qui a été construit sans aucun support pour InnoDB - exactement de quelle version est-il et où l'avez-vous obtenu? –

+0

Server Info: MySQL 5.0.58-classic-nt-log via TCP/IP Client Info: client MySQL Version 5.1.11 Malheureusement je ne peux pas vous dire où je l'ai eu. C'est la base de données de l'entreprise et mon patron n'est pas là aujourd'hui. – Ryan