SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.01.2008 15:28:45

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Перенос базы с 5-й версии на 4-ю

При переносе базы возникли проблемы с кодировкой - кириллица показывает ?????

Server version: отсюда - 5.0.45 сюда - 4.1.22
Новый хостер ничего придумать не смог sad

Как перекодировать базу?

Неактивен

 

#2 05.01.2008 15:34:23

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Перенос базы с 5-й версии на 4-ю

Должно быть в порядке в принципе. Поддержка кириллицы на 4.1 аналогична 5.0. Как выглядит Ваш дамп? Покажите кусочек из начала (где SET NAMES), кусочек из CREATE TABLE и кусочек с реальной инфой.

Возможно, что все в порядке, но приложение отображает неправильно (разные уставновки сервера по умолчанию), попробуйте там где у Вас mysql_connect(), следующей строчкой написать mysql_query("SET NAMES cp1251"), есть конечно сайт у Вас в cp1251

Неактивен

 

#3 05.01.2008 16:32:09

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

-- MySQL dump 10.11
--
-- Host: localhost    Database: faq
-- ------------------------------------------------------
-- Server version        5.0.45-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 utf8 */;
/*!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 `dnp_faq_main`
--

DROP TABLE IF EXISTS `dnp_faq_main`;
CREATE TABLE `dnp_faq_main` (
  `idnum` int(11) NOT NULL auto_increment,
  `time` varchar(5) default NULL,
  `datum` date default NULL,
  `vopros` text,
  `otvet` text,
  `name` varchar(60) default NULL,
  `email` varchar(100) default NULL,
  PRIMARY KEY  (`idnum`)
) ENGINE=MyISAM AUTO_INCREMENT=82 DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `dnp_faq_main`
--

LOCK TABLES `dnp_faq_main` WRITE;
/*!40000 ALTER TABLE `dnp_faq_main` DISABLE KEYS */;
INSERT INTO `dnp_faq_main` (`idnum`, `time`, `datum`, `vopros`, `otvet`, `name`, `email`) VALUES (2,'19:43','2006-12-17','Возьмете?','Отвечает Модератор','Baby','b@g.com'),(5,'19:44','2006-12-17','Конкурсы?','<b>Отвечает Администратор</b>:<br />\r\nА где? Ну?<br />\r\nПодскажите!<br />
/*!40000 ALTER TABLE `dnp_faq_main` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `dnp_faq_new`
--

DROP TABLE IF EXISTS `dnp_faq_new`;
CREATE TABLE `dnp_faq_new` (
  `idnum` int(11) NOT NULL auto_increment,
  `time` varchar(5) default NULL,
  `datum` date default NULL,
  `vopros` text,
  `name` varchar(60) default NULL,
  `email` varchar(100) default NULL,
  `ip` text,
  `brouser` text,
  PRIMARY KEY  (`idnum`)
) ENGINE=MyISAM AUTO_INCREMENT=80 DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `dnp_faq_new`
--

LOCK TABLES `dnp_faq_new` WRITE;
/*!40000 ALTER TABLE `dnp_faq_new` DISABLE KEYS */;
INSERT INTO `dnp_faq_new` (`idnum`, `time`, `datum`, `vopros`, `name`, `email`, `ip`, `brouser`) VALUES (68,'08:24','2007-11-23','wo','zzz','web@www.com',66.66.66.66::','Mozilla/4.0 (compatible; MSIE 12.0; Windows NT 8.1; SV1; .NET CLR 1.1.4322)');
/*!40000 ALTER TABLE `dnp_faq_new` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2008-01-03  5:04:38

Отредактированно Boris Yakshov (28.01.2008 18:14:14)

Неактивен

 

#4 05.01.2008 16:42:50

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

upc wink

это mysql_query("SET NAMES cp1251"),
сработало

Неактивен

 

#5 05.01.2008 16:58:06

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

не сработало sad

кусок из ДБ

-- MySQL dump 10.11
--
-- Host: localhost    Database:
-- ------------------------------------------------------
-- Server version        5.0.45-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 utf8 */;
/*!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 `spnuke_admins`
--

DROP TABLE IF EXISTS `spnuke_admins`;
CREATE TABLE `spnuke_admins` (
  `admins_login` varchar(255) NOT NULL default '',
  `admins_key_name` varchar(255) NOT NULL default '',
  `admins_email` varchar(255) NOT NULL default '',
  `admins_password` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`admins_login`),
  KEY `admins_key_name` (`admins_key_name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `spnuke_admins`
--

Отредактированно Boris Yakshov (28.01.2008 18:10:24)

Неактивен

 

#6 05.01.2008 17:10:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Перенос базы с 5-й версии на 4-ю

1. убедитесь, что Вы нашли все упонинания mysql_connect и после них добавили SET NAMES. Если используется абстракция БД, то надо mysql_query заменить на то, как запросы выглядят в данной абстракции, что-то вроде $db->query("SET NAMES cp1251");

2. вы привели хороший дамп, один вопрос - русский текст в нем Вы читаете, если дамп смотреть в UTF8? Правильно ли я понимаю, что если Вы дамп откроете в notepad, то в нем будет абракадабра вместо русских букв? Если это не так и дамп открывается и читает блокнотом, то Вам нужно в его начале изменить SET NAMES utf8 на SET NAMES cp1251

Неактивен

 

#7 05.01.2008 17:22:09

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

Поищу все коннекты. Только дело в том, что весь сайт состоит и 7 кусков, у всех свои базы и скрипты.
Нет ли решения типа конвертер базы данных? Без переписывания скриптов?
Там есть например форум еще на PHPBB, на русском, с той же проблемой.
Т.е. очень не хочется прикасаться к скриптам

Русский текст в дампе читается, Штирлиц-4 я уже пробовал smile

Отредактированно Boris Yakshov (28.01.2008 18:11:19)

Неактивен

 

#8 05.01.2008 17:37:13

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Перенос базы с 5-й версии на 4-ю

Конвертировать базу не надо, так как она в порядке. Вам надо установить кодировку по умолчанию для клиента. В данном случае клиентом является php. У большинства русских хостеров по умолчанию везде прописана cp1251, поэтому проблем не возникает. Как я понимаю, php всегда подключается в той кодировке, с которой он скомпилирован.

Неактивен

 

#9 05.01.2008 20:24:44

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

Ваша правда. Другого выхода нет, буду переписывать скрипты. 3 раздела, зависящие от баз уже получились. Не так страшен черт как его малюют

Неактивен

 

#10 15.01.2008 23:53:27

AndyWolk
Участник
Зарегистрирован: 15.01.2008
Сообщений: 2

Re: Перенос базы с 5-й версии на 4-ю

Есть еще один вариант. Качество не гарантирую.
Если таблиц не много, то можно каждую привести к типу хранилища MYISAM командой
ALTER TABLE `названиетаблицы` ENGINE = MyISAM;
Таким образом таблица будет представлять три файла на диске в папке под именем базы данных.
Попробуйте перенести эти файлы (можно целиком папку базы данных) на другой сервер. Должно получиться.

Неактивен

 

#11 16.01.2008 02:09:26

Boris Yakshov
Участник
Откуда: Венгрия
Зарегистрирован: 05.01.2008
Сообщений: 7

Re: Перенос базы с 5-й версии на 4-ю

Спасибо за советы. Все уже получилось путем SET NAMES cp1251

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson