1

Тема: Как конвертировать базу и таблицы из binary..

У одного хостера из-за настроек пришлось конвертировать для читаемости базы в binary,
теперь переехал на другой хост и видны только кракозябры,как обратно конвертировать базу и таблицы из binary в cp1251?
Скрипт которым делал преобразование в binary из 1251 обратное действие не делает ((( как только не пробовал...

2

Re: Как конвертировать базу и таблицы из binary..

MASS
Если данные находятся в шестнадцатеричном виде, то должен работать запрос вида:

mysql> SELECT 0x616263;

Покажите структуру таблицы и пример данных.

3

Re: Как конвертировать базу и таблицы из binary..

Hanut сказал:

MASS
Если данные находятся в шестнадцатеричном виде, то должен работать запрос вида:

mysql> SELECT 0x616263;

Покажите структуру таблицы и пример данных.

Вот кусок дампа базы

-- Server version    5.0.51a-community

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES cp1251 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `jos_banner`
--

DROP TABLE IF EXISTS `jos_banner`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `jos_banner` (
  `bid` int(11) NOT NULL auto_increment,
  `cid` int(11) NOT NULL default '0',
  `type` varbinary(10) NOT NULL default 'banner',
  `name` varbinary(50) NOT NULL,
  `imptotal` int(11) NOT NULL default '0',
  `impmade` int(11) NOT NULL default '0',
  `clicks` int(11) NOT NULL default '0',
  `imageurl` varbinary(100) NOT NULL,
  `clickurl` varbinary(200) NOT NULL,
  `date` datetime default NULL,
  `showBanner` tinyint(1) NOT NULL default '0',
  `checked_out` tinyint(1) NOT NULL default '0',
  `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `editor` varbinary(50) default NULL,
  `custombannercode` blob,
  PRIMARY KEY  (`bid`),
  KEY `viewbanner` (`showBanner`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=binary;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `jos_banner`
--

LOCK TABLES `jos_banner` WRITE;
/*!40000 ALTER TABLE `jos_banner` DISABLE KEYS */;
INSERT INTO `jos_banner` VALUES (1,1,'banner','CMS Joomla РІ Р РѕСЃСЃРёРё',0,1,0,'joom_ru-468x60.jpg','http://joom.ru/','2006-12-25 15:31:29',0,0,'0000-00-00 00:00:00',NULL,NULL),(2,1,'banner','РасС?ирения CMS Joomla',0,1,0,'joom_ru-468x60.jpg','http://ext.joom.ru/','2006-12-25 15:31:29',0,0,'0000-00-00 00:00:00',NULL,NULL),(3,1,'banner','Поддержка CMS Joomla РІ Р РѕСЃСЃРёРё',0,1,0,'joom_ru-468x60.jpg','http://joomla-support.ru/','2006-12-25 15:31:29',0,0,'0000-00-00 00:00:00',NULL,NULL),(4,1,'banner','Документация CMS Joomla',0,2,0,'joom_ru-468x60.jpg','http://joomla-docs.ru/','2006-12-25 15:31:29',0,0,'0000-00-00 00:00:00',NULL,NULL),(5,1,'banner','On-line помощь CMS Joomla',0,1,0,'joom_ru-468x60.jpg','http://help.joom.ru/','2006-12-25 15:31:29',0,0,'0000-00-00 00:00:00',NULL,NULL);
/*!40000 ALTER TABLE `jos_banner` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `jos_bannerclient`
--

DROP TABLE IF EXISTS `jos_bannerclient`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `jos_bannerclient` (
  `cid` int(11) NOT NULL auto_increment,
  `name` varbinary(60) NOT NULL,
  `contact` varbinary(60) NOT NULL,
  `email` varbinary(60) NOT NULL,
  `extrainfo` blob NOT NULL,
  `checked_out` tinyint(1) NOT NULL default '0',
  `checked_out_time` time default NULL,
  `editor` varbinary(50) default NULL,
  PRIMARY KEY  (`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=binary;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `jos_bannerclient`
--

LOCK TABLES `jos_bannerclient` WRITE;
/*!40000 ALTER TABLE `jos_bannerclient` DISABLE KEYS */;
INSERT INTO `jos_bannerclient` VALUES (1,'Реклама на Joom.ru','Administrator','team@joom.ru','',0,'00:00:00',NULL);
/*!40000 ALTER TABLE `jos_bannerclient` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `jos_bannerfinish`
--

DROP TABLE IF EXISTS `jos_bannerfinish`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `jos_bannerfinish` (
  `bid` int(11) NOT NULL auto_increment,
  `cid` int(11) NOT NULL default '0',
  `type` varbinary(10) NOT NULL,
  `name` varbinary(50) NOT NULL,
  `impressions` int(11) NOT NULL default '0',
  `clicks` int(11) NOT NULL default '0',
  `imageurl` varbinary(50) NOT NULL,
  `datestart` datetime default NULL,
  `dateend` datetime default NULL,
  PRIMARY KEY  (`bid`)
) ENGINE=MyISAM DEFAULT CHARSET=binary;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `jos_bannerfinish`
--

LOCK TABLES `jos_bannerfinish` WRITE;
/*!40000 ALTER TABLE `jos_bannerfinish` DISABLE KEYS */;
/*!40000 ALTER TABLE `jos_bannerfinish` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `jos_categories`
--

DROP TABLE IF EXISTS `jos_categories`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `jos_categories` (
  `id` int(11) NOT NULL auto_increment,
  `parent_id` int(11) NOT NULL default '0',
  `title` varbinary(50) NOT NULL,
  `name` varbinary(255) NOT NULL,
  `image` varbinary(100) NOT NULL,
  `section` varbinary(50) NOT NULL,
  `image_position` varbinary(10) NOT NULL,
  `description` blob NOT NULL,
  `published` tinyint(1) NOT NULL default '0',
  `checked_out` int(11) unsigned NOT NULL default '0',
  `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `editor` varbinary(50) default NULL,
  `ordering` int(11) NOT NULL default '0',
  `access` tinyint(3) unsigned NOT NULL default '0',
  `count` int(11) NOT NULL default '0',
  `params` blob NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `cat_idx` (`section`,`published`,`access`),
  KEY `idx_section` (`section`),
  KEY `idx_access` (`access`),
  KEY `idx_checkout` (`checked_out`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=binary;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `jos_categories`
--

LOCK TABLES `jos_categories` WRITE;
/*!40000 ALTER TABLE `jos_categories` DISABLE KEYS */;
INSERT INTO `jos_categories` VALUES (1,0,'РќРѕРІРѕРµ','Последние новости','taking_notes.jpg','1','left','Последние новости РѕС‚ команды разработчиков Joomla!',1,0,'0000-00-00 00:00:00','',0,0,1,''),(2,0,'Joomla!','Joomla!','clock.jpg','com_weblinks','left','Р?збранные ссылки РЅР° сайты, связанные СЃ проктом Joomla!',1,0,'0000-00-00 00:00:00',NULL,0,0,0,''),(3,0,'Краткие новости','Краткие новости','','2','left','',1,0,'0000-00-00 00:00:00','',0,0,0,''),(4,0,'Joomla!','Joomla!','','com_newsfeeds','left','',1,0,'0000-00-00 00:00:00',NULL,2,0,0,''),(5,0,'Бизнес: РѕСЃРЅРѕРІРЅРѕРµ','Бизнес: РѕСЃРЅРѕРІРЅРѕРµ','','com_newsfeeds','left','',1,0,'0000-00-00 00:00:00',NULL,1,0,0,''),(7,0,'Примеры','Пример Р§Р°.Р’Рѕ. (FAQ)','key.jpg','3','left','Здесь Р’С‹ найдете ответы РЅР° часто задаваемые РІРѕРїСЂРѕСЃС‹.',1,0,'0000-00-00 00:00:00',NULL,0,0,2,''),(9,0,'Финансы','Финансы','','com_newsfeeds','left','',1,0,'0000-00-00 00:00:00',NULL,5,0,0,''),(10,0,'Linux','Linux','','com_newsfeeds','left','<br />\r\n',1,0,'0000-00-00 00:00:00',NULL,6,0,0,''),(11,0,'Р?нтернет','Р?нтернет','','com_newsfeeds','left','',1,0,'0000-00-00 00:00:00',NULL,7,0,0,''),(12,0,'Контакты','Контакты','','com_contact_details','left','Подробная контактная информация для этого сайта<img style=\"margin: 0px;\" title=\"РћРћРћ \" height=\"876\" alt=\"РћРћРћ \" src=\"http://www.servissnab.ru/images/stories/map-update.jpg\" width=\"500\" />',1,0,'0000-00-00 00:00:00',NULL,1,0,0,''),(13,0,'Joomla! РїРѕ-СЂСѓСЃСЃРєРё','Joomla! РїРѕ-СЂСѓСЃСЃРєРё','web_links.jpg','com_weblinks','left','Сайты Рѕ Joomla! РЅР° СЂСѓСЃСЃРєРѕРј языке.',1,0,'0000-00-00 00:00:00',NULL,0,0,0,''),(14,0,'Пено','Пено','','4','left','',1,0,'0000-00-00 00:00:00',NULL,1,0,0,'imagefolders=*2*');
/*!40000 ALTER TABLE `jos_categories` ENABLE KEYS */;
UNLOCK TABLES;

4

Re: Как конвертировать базу и таблицы из binary..

MASS
Данные в дампе в utf8, а не в cp1251.

Попробуйте в шапке дампа привести запрос задающий кодировку соединения в такой вид:
SET NAMES utf8

Далее, во всех запросах на создание таблицы поменяйте изначальную кодировку:
DEFAULT CHARSET=binary
На:
DEFAULT CHARSET=utf8

При редакции дампа используйте специализированный текстовый редактор, который понимает кодировку, например Notepad++. То есть при редакции вы должны в дампе видеть кирилицу, а не крякозябы. Сохраните дамп в utf8 и при импорте в phpMyAdmin, выберите кодировку файла дампа - utf8. Если дамп в текстовом редакторе откроется в ANSI, то восстановить кирилицу будет нельзя, потребуется заново создать дамп, уже в utf8.

5

Re: Как конвертировать базу и таблицы из binary..

Спасибо.Просто не удачный пример дампа привёл,остальные базы все в ср1251, но я так понял что метод можно и к ср1251 применить?
Пойду пробовать,ещё раз спасибо.

Вот с этим только не особо понял ))) как этот запрос прописать?

Hanut сказал:

MASS
Попробуйте в шапке дампа привести запрос задающий кодировку соединения в такой вид:
SET NAMES utf8

6

Re: Как конвертировать базу и таблицы из binary..

MASS сказал:

Просто не удачный пример дампа привёл,остальные базы все в ср1251, но я так понял что метод можно и к ср1251 применить?

Не знаю в каком состоянии у вас "удачный пример", но вероятно попробовать изменить кодировку таблиц в дампе, вполне можно.

MASS сказал:

Вот с этим только не особо понял ))) как этот запрос прописать?

Запрос, устанавливающий кодировку соединения, из шапки дампа:
/*!40101 SET NAMES cp1251 */;
Поменять на:
/*!40101 SET NAMES utf8 */;