2009-07-30 80 views
15

Tôi có một ứng dụng đường ray mới mà tôi đã tạo trong Windows 7 bằng cách vào thư mục và gõ "ray newapp". Việc tạo ra tốt đẹp, và khi tôi truy cập trang gốc, tất cả đều tốt. Tuy nhiên, khi tôi cố truy cập một trang có thể truy cập vào cơ sở dữ liệu, tôi nhận được thông tin này:"193:% 1 không phải là một ứng dụng Win32 hợp lệ" lỗi với một ứng dụng Rails mới

193: %1 is not a valid Win32 application. 

Trong developer.log. Mysql đang chạy tốt trên máy tính của tôi, và tôi có các ứng dụng khác mà tôi đã chạy ở đây trong các thư mục khác, nó chỉ là một trong đó không hoạt động. Có suy nghĩ gì không?

+0

Tôi cũng gặp sự cố này. Nếu bạn phát hiện ra điều gì đã xảy ra, hãy đăng bài. Tôi sẽ làm tương tự nếu/khi tôi tìm ra. – Ryan

Trả lời

26

Đây là câu trả lời phù hợp với tôi. Hóa ra đó là vấn đề x64 so với vấn đề x32 và Rails 2.3.2.

Câu trả lời tôi nhận được từ đây (http://osdir.com/ml/RubyonRailsTalk/2009-06/msg01775.html):

Trong trường hợp bất cứ ai khác có cùng vấn đề sau rất nhiều nỗ lực trên máy tính Windows XP x64 của tôi, với MySQL 5.1.30 (x64) và Rails 2.3.2 được cài đặt, điều này ở trên đề nghị đã giúp tôi. Tải xuống libMySql.dll từ đây (http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) và đặt nó vào thùng rác \ bin đã giải quyết sự cố .

+1

Giải pháp liên kết đến dường như là một hack. Tôi không hài lòng với các giải pháp có vẻ như ma thuật đen. Có thể đây không phải là vấn đề với việc sử dụng phiên bản 64 bit của MySQL với Rails (hoặc có thể chỉ với WEBrick)? Tôi sẽ tiếp tục thử nghiệm bằng cách tải xuống và cài đặt phiên bản 32 bit của MySQL thay vì trộn trong một DLL từ phiên bản trong gói InstantRails. –

+1

Đó là một hack để chắc chắn - đó là bởi vì MySQL hỗ trợ cho Windows là spotty lúc tốt nhất. – aronchick

+0

tuyệt vời !! điều này đã được khoảng gần một năm !! nhưng tại sao Ruby không bao giờ sửa lỗi này? Tôi vẫn gặp sự cố ... GRRRR – Sufendy

1

Lỗi này xảy ra nếu bạn có tệp có tên "Chương trình" trong thư mục gốc của ổ đĩa. Nói ví dụ bạn đang cố gắng để thực hiện "C: \ Program Files \ SomeApp \ Bin \ SomeExe.Exe" nó cố gắng để thực hiện "C: \ Program" nếu nó tồn tại. Trong một số trường hợp, một tệp có tên này được tạo nếu bạn quên trích dẫn "C: \ Program Files ..." với một số lệnh dòng lệnh. Điều này tất nhiên cũng áp dụng cho bạn D: ổ đĩa, vv

Lỗi này thường xảy ra nếu bạn cố gắng khởi động dịch vụ, nhưng có thể xảy ra trong các trường hợp khác.

Việc xóa tệp C: \ Program hoặc D: \ Program etc. giải quyết được sự cố.

+0

Hi --- đây không phải là vấn đề đối với tôi, vì tôi không có một chương trình như vậy trên thư mục gốc của ổ đĩa của tôi. – aronchick

0

Sau khi chạy vào nhiều vấn đề thiết lập MySQL với Rails trên Windows x64 khuyến nghị của tôi là:

  • Cài đặt phiên bản 32-bit của MySQL, đừng cố gắng sử dụng các phiên bản 64-bit.
  • Cài đặt vào một con đường không có dấu cách, không chấp nhận một mặc định như " C: \ Program Files \ MySQL \ MySQL Server 5.5 \ "
  • Cài đặt đá quý với một lời gọi tương tự như MySQL:
      gem install mysql -- --platform=ruby --with-mysql-dir="D:\Programs\MySQL\MySQL-Server-5.5" --with-libmysqllib="D:\Programs\MySQL\MySQL-Server-5.5\lib\"
  • Đảm bảo gỡ cài đặt/cài đặt lại đá quý bất cứ khi nào bạn cài đặt phiên bản MySQL mới.
  • Đảm bảo D: \ Programs \ MySQL \ MySQL-Server-5.5 \ lib được bao gồm trong đường dẫn của bạn, cũng như D: \ Programs \ MySQL \ MySQL-Server-5.5 \ bin. Đảm bảo rằng các bản sao libmysql.dll khác không được chọn từ nơi khác trên đường dẫn hoặc thư mục cài đặt ruby ​​của bạn.

Điều này làm việc cho tôi với mysql-5.5.15-win32, mysql-2.8.1-x86-mingw32 và Windows 7 x64.

    +1

    Umm, không có nó không, điều này chỉ được qua "không phải là một Win32 hợp lệ ...", nó vẫn segfaults trên db: tạo, xem http://stackoverflow.com/questions/5020152/rake-dbcreate-failing -on-win7-x64 Điều này chắc chắn bị hỏng, sao chép libMySql.dll từ InstantRails giống như mọi người khác. –

    0

    Sao chép tệp libmysql.dll từ thư mục cài đặt MySQL của bạn và dán vào thư mục bin cài đặt Ruby của bạn. Bạn có thể cần phải tải xuống lưu trữ zip từ http://dev.mysql.com/downloads/mysql/ nếu thư mục cài đặt MySQL của bạn chưa bao gồm tệp libmysql.dll.

    6

    Giải Quyết bằng cách làm theo các hướng dẫn trên blog này ở đây: http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

    trong đó bao gồm sử dụng phiên bản cài đặt không của MySQL Connector http://dev.mysql.com/downloads/connector/c/

    tôi không thể có được webrick để chạy trên hệ thống x64 Windows 7 - có các lỗi tương tự

    "193:% 1 không phải là một ứng dụng Win32 hợp lệ”

    Nếu tôi chỉ thay thế các file libmysql.dll (như đề xuất trong bài viết ở trên), tôi nhận được một lỗi khác nhau .

    "không đúng phiên bản MySQL thư viện khách hàng!"

    Đường dẫn tôi thiết lập như thế này: C: \ Ruby187 \ bin; C: \ Program Files \ MySQL \ MySQL Server 5.5 \ bin; C: \ Ruby187 \ lib \ ruby ​​\ đá quý \ 1.8 \ đá quý \ ray-3.1.1 \ bin

    (không cần phải thay đổi đường dẫn một lần nữa)

    -2

    Sử dụng ruby ​​(1.8.7) với MySQL (5.5) trên Windows 7 và cũng gặp lỗi 193. Sao chép libmySQL.dll vào thùng/thùng làm việc tốt cho tôi.

     
    C:\Work\redmine-2.4.1\config\database.yml content: 
    
    # Default setup is given for MySQL with ruby1.9. If you're running Redmine 
    # with MySQL and ruby1.8, replace the adapter name with `mysql`. 
    # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end. 
    # Line indentation must be 2 spaces (no tabs). 
    
    production: 
        adapter: mysql 
        database: redmine 
        host: localhost 
        username: root 
        password: "[email protected]" 
        encoding: utf8 
    
    
    Các vấn đề liên quan