ruby - sirve - rutina saltar la cuerda para quemar grasa
Esfinge pensando en el tipo desconocido ''mysql''; salto a la comba (4)
Cuando esté compilando Sphinx debe especificar el indicador --with-mysql
.
$ ./configure --with-mysql
$ make
$ sudo make install
Es posible que deba especificar la ubicación de los archivos de inclusión de su biblioteca MySQL. Por ejemplo, en una instalación nueva de OS X:
$ ./configure --with-mysql=/opt/local/include/mysql5
Estoy usando ts versión 2.0.5, rails 3.0.9 y mysql2 0.2.11
Cuando intento crear mis índices, usando rake ts: index, obtengo el siguiente error:
ERROR: source ''technical_core_0'': unknown type ''mysql''; skipping.
Mi desarrollo.sphinx.conf contiene:
source technical_core_0
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = ps_development
sql_sock = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8
sql_query_pre = SET TIME_ZONE = ''+0:00''
sql_query = SELECT SQL_NO_CACHE `technicals`.`id` * CAST(1 AS SIGNED) + 0 AS `id` , `orders`.`name` AS `author`, `technicals`.`id` AS `sphinx_internal_id`, 0 AS `sphinx_deleted`, 488243725 AS `class_crc`, IFNULL(`orders`.`name`, '''') AS `author_sort`, `technicals`.`order_id` AS `order_id`, UNIX_TIMESTAMP(`technicals`.`created_at`) AS `created_at`, UNIX_TIMESTAMP(`technicals`.`updated_at`) AS `updated_at` FROM `technicals` LEFT OUTER JOIN `orders` ON `orders`.`id` = `technicals`.`order_id` WHERE (`technicals`.`id` >= $start AND `technicals`.`id` <= $end) GROUP BY `technicals`.`id`, , `orders`.`name`, `technicals`.`id`, `orders`.`name`, `technicals`.`order_id`, `technicals`.`created_at`, `technicals`.`updated_at` ORDER BY NULL
sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1) FROM `technicals`
sql_attr_uint = sphinx_internal_id
sql_attr_uint = sphinx_deleted
sql_attr_uint = class_crc
sql_attr_uint = order_id
sql_attr_timestamp = created_at
sql_attr_timestamp = updated_at
sql_attr_str2ordinal = author_sort
sql_query_info = SELECT * FROM `technicals` WHERE `id` = (($id - 0) / 1)
}
Lo cual es un poco extraño ya que mi archivo database.yml contiene mysql2 y una contraseña de root.
¿Puedes ayudarme a pasar esta etapa? También intenté crear un archivo sphinx.yml con:
development:
adapter: mysql2
Pero esto también falla.
- ACTUALIZACIÓN -
Agregué esto en el archivo de inicializadores de desarrollo:
ThinkingSphinx.database_adapter = :mysql2
Lo que da error sobre solo MySQL siendo soportado.
La fuente generada parece correcta. ¿Es posible que su versión de Sphinx haya sido compilada sin el soporte de MySQL?
Según el enlace here , simplemente puede hacer lo siguiente en homebrew (mac):
brew install sphinx --with-mysql
Eso me funcionó :)
También al instalar en OSX a través de homebrew intente esto:
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
brew install --interactive sphinx
./configure
make
make install
exit