Они не то же самое - UTF-8 является конкретным способом закодировать Unicode.
существует много различной кодировки, из которой можно выбрать в зависимости от приложения и данных, которые Вы намереваетесь использовать. Наиболее распространенным является UTF-8, UTF-16 и UTF-32 s далеко, как я знаю.
на моей Mac OS X 10.6 Я сделал это, чтобы установить гем 2.8.1, который отлично работал с моим mysql5-сервером MacPorts:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql
Да, я видел подобное сообщение об ошибке, ища тот же несуществующий класс MysqlCompat :: MysqlRes
Как оказалось, этого класса не должно быть; сообщение об ошибке вызвано проблемой с последней версией драйвера Mysql. mysql-2.8.1 искал мои библиотеки в каталоге с дополнительным уровнем mysql в конце. Например, мои библиотеки (в MacOS X 10.5.8) находятся в / usr / local / mysql / lib, но библиотека mysql.bundle ищет библиотеки MySQL в / usr / local / mysql / lib / mysql ... что неверно.
Я обнаружил, что это достаточно легко исправить, создав символическую ссылку в / usr / local / mysql / lib с именем 'mysql', которая указывает на '.'
Итак, когда библиотеки ссылаются на этой дополнительной глубине они обнаруживаются и работают. Это определенно взлом; Я уверен, что есть более подходящие способы исправить это. Мне просто нужно, чтобы он работал, чтобы я мог заниматься другими делами.
Более того, это может не сработать для вас. Скорее всего, это сработает, если ваша ошибка выглядит так:
./mysql.bundle: dlopen(./mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib (LoadError)
Referenced from: /Users/ccullen/Projects/npapp-v2/mysql-ruby-2.8.1/mysql.bundle
Reason: image not found - ./mysql.bundle
from test.rb:5
Поскольку это, похоже, недавняя разработка, и я не видел прямого ответа на нее, я подумал, что расскажу, как я ее исправил. Удачи :)
Помогла установка правильных ARCHFLAGS при (повторной) установке гема мне .. без обязательной символической ссылки:
http://joergbattermann.tumblr.com/post/181479575/fixing-the-nameerror-uninitialized-constant
Я пробовал все вышеперечисленное, и ни один из них у меня тоже не работает. При попытке установить mysql версии 2.7 я получаю сообщение об ошибке:
sudo gem install -v=2.7.1 mysql -- --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config
ERROR: could not find gem mysql locally or in a repository
F107PHD:stepgreen.org tdillahu$ sudo gem install -v=2.7 mysql -- --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb --with-mysql-dir=/usr/local/mysql-5.1.39-osx10.5-powerpc/bin/mysql_config
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mlib
--without-mlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-zlib
--without-zlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-socketlib
--without-socketlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-nsllib
--without-nsllib
--with-mysqlclientlib
--without-mysqlclientlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.7/gem_make.out
Моя исходная ошибка:
ake прервано!
неинициализированная константа MysqlCompat :: MysqlRes /vendor/rails/activesupport/lib/active_support/dependencies.rb:440:in load_missing_constant '
/vendor/rails/activesupport/lib/active_support/dependencies.rb:80:in
const_missing'
У меня была такая же проблема после апгрейда с Fedora 10 на Fedora 12. Я исправил ее, просто удалив mysql gem и установив его снова. Таким образом, это соответствует новой версии MySQL.
.Sudo GEM Установка MySQL -V 2.7 - --with-mysql-config = / usr / local / mysql / bin / mysql_config
отлично работал для меня :)
sudo gem install mysql -v 2.7 - --with-mysql-config = / usr / local / mysql / bin / mysql_config также помог мне при переходе на мой новый ноутбук Snow Leopard. Я не использовал MacPorts для установки mysql, а скорее двоичный файл, и мне не повезло с решениями флагов или символическими ссылками.
sudo gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
также работал у меня, когда флаг Arch и символические ссылки не работали! БЛАГОДАРНОСТЬ!!
Посмотрите на db.eval :
Вы должны сделать что-то вроде:
episode = connection['dvds'].eval('function(title){
var t = db.dvds.findOne({"episodes.title" : title},{episodes:true});
if (!t) return null;
for (var i in t.episodes) if (t.episodes[i].title == title) return t.episodes[i];
}', "Episode 1");
так что фильтрация эпизодов будет на стороне сервера.
-121--2410587-Почему бы не использовать функцию Apache Commons Lang и StringUtils.chomp () ? Одна из замечательных вещей в Scala заключается в том, что вы можете использовать существующие библиотеки Java.
-121--4585730-sudo env ARCHFLAGS="-arch x86_64" gem install mysql
Пакет Dmg с сайта mysql и ddone!
Эта проблема появилась у меня после обновления Ubuntu с 9.10 до 10.04.
Похоже, проблема связана с гемом mysql.
Симптомы: Любое использование ActiveRecord, которое требует подключения к mysql, приводит к трассировке стека, исходящей из «неинициализированной константы MysqlCompat :: MysqlRes»
Я попробовал «gem update mysql» и обнаружил, что не могу создавать собственные расширения потому что компилятор не может найти библиотеку mysql_client. Эта библиотека (libmysqlclient.so.16) находится в / usr / lib.
Исправление для ubuntu 10.04:
Как root, я сделал следующее:
apt-get install libmysqlclient-dev
gem install mysql
Я заметил, что несколько разных людей пробуют что-то здесь, и мне интересно, не обнаруживаем ли мы первопричину.
Переменные, которые нужно уточнить в ответах:
С mysql gem (2.8.1) я получал
неинициализированную константу MysqlCompat::MysqlRes
Использование -v 2.7 заставляет его работать идеально, а для тех, кто использовал Homebrew для установки mysql
sudo gem install mysql -v 2.7... --with-mysql-config=/usr/local/Cellar/mysql/5.1.48/bin/mysql_config
Обратите внимание, что при необходимости вы можете изменить версию mysql.
В Mac OS X 10.6.4 мне пришлось указать архитектуру и каталог конфигурации:
sudo env ARCHFLAGS = "- arch x86_64" gem install mysql - --with-mysql-config = / usr / local / mysql / bin / mysql_config
Моя проблема была связана с тем, что мой "mysql" был 32-битной установкой, в то время как ruby был 64- и 32-битным. Проверьте с помощью этих команд
file `which mysql`
file `which ruby`
Оба должны соответствовать 64-разрядному исполняемому файлу Mach-O x86_64 или 64-разрядному исполняемому файлу Mach-O i386. Я установил 64-битный mysql, затем
export ARCHFLAGS="-arch x86_64" ; sudo gem install --no-rdoc --no-ri mysql -v 2.7 -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/local/mysql/bin/mysql_config
и вуаля!
gem uninstall mysql
gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
ldconfig /usr/local/mysql/lib/mysql
RAILS_ENV=production rake db:migrate --trace
У меня это сработало.