Можно ли как-нибудь закачать дамп от "MySQL v. 4" в БД "MySQL v. 3"?

evgkuz

Новичок
Можно ли как-нибудь закачать дамп от "MySQL v. 4" в БД "MySQL v. 3"?

Можно ли как-нибудь закачать дамп от "MySQL v. 4" в БД "MySQL v. 3"?

Проблема в том, что при попытке закачать дамп от "MySQL v. 4" в БД "MySQL v. 3" возникают синтаксические ошибки по поводу следующего кода:

"ENGINE=MyISAM DEFAULT CHARSET=cp1251"

Если удалить эту строку, то вместо русского текста появляется непонятный код.
 

evgkuz

Новичок
Базы данных, с которой я делал дамп, уже не существует.
Т.е. я не могу сделать повторный дамп.

Можно как-нибудь по другому закачать этот дамп?
 

evgkuz

Новичок
Автор оригинала: svetasmirnova
в search-replace диалог твоего любимого редактора
Т.е. исходную таблицу:

PHP:
CREATE TABLE `cpg134_banned` (
  `ban_id` int(11) NOT NULL auto_increment,
  `user_id` int(11) default NULL,
  `ip_addr` tinytext,
  `expiry` datetime default NULL,
  PRIMARY KEY  (`ban_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
переделать в:

PHP:
CREATE TABLE `cpg134_banned` (
  `ban_id` int(11) NOT NULL auto_increment,
  `user_id` int(11) default NULL,
  `ip_addr` tinytext,
  `expiry` datetime default NULL,
  PRIMARY KEY  (`ban_id`)
) s/ENGINE/TYPE/;
Или я что-то не правильно сделал?
 

evgkuz

Новичок
Автор оригинала: Paxan
evgkuz
имеелось ввиду заменить ENGINE на TYPE
phpMyAdmin выдал ошибку:

PHP:
#1064 - You have an error in your SQL syntax near 'DEFAULT CHARSET=cp1251' at line 19
Видимо MySQL не нравится "CHARSET". Чем можно заменить этот параметр?
 

svetasmirnova

маленький монстрик
evgkuz
Ааа, у тебя же совсем старая версия =(
Убирай и charset тогда. Как решить проблему с кодировками - вот старый мануал: http://w3.gazi.edu.tr/~ertan/sql/sql/manual.html#Character_sets (или скачай с официального сайта MySQL русскую версию мануала: она как раз "как надо" устаревшая)

-~{}~ 29.07.06 01:58:

kruglov
>Никогда не видели дампов из 3-ки, что ли?
мы уже забыли =)
 

evgkuz

Новичок
Я решил, что проще будет обновить MySQL с версии 3 до "4.1.19-win32" на своём локальном сервере.
Но возникла мальнькая проблема:
Я не нашёл библиотеку "php_mysql.dll" ни в "PHP4.3.10", ни в "mysql-4.1.19-win32".
Есть только "libmysql.dll".
До этого "MySQL 3.23" работал без файла "php_mysql.dll".

Где можно найти файл "php_mysql.dll" для "PHP4.3.10" + "mysql-4.1.19-win32"?
 

Gorynych

Посетитель PHP-Клуба
evgkuz хороший вопрос.

во-первых, сдается мне что понадобится не MySQL extension, а уже MySQLi - http://ru.php.net/manual/en/ref.mysqli.php

а во-вторых, что-то на http://mysql.dn.ru/downloads/connector/php/index.html лично я вижу версию для PHP 5, а не для четверки...

можно конечно попробовать, но может и не пойти. Где-то был репозиторий dll'ек. Вроде не так давно проскальзывало на форуме...
 

evgkuz

Новичок
Может мне кто-нибудь пришлёт файл "php_mysql.dll" для "PHP4.3.10" на Email [email protected] ?

Или ссылку на этот репозиторий dll'ек. Через поиск я не нашёл.

-~{}~ 30.07.06 20:44:

На всякий случай, "phpMyAdmin" сейчас выдаёт ошибку:

#1130 - Host 'localhost' is not allowed to connect to this MySQL server
php_info():

mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49

Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
-~{}~ 30.07.06 21:14:

В файле "php.ini" есть запись:

Код:
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
 

Апельсин

Оранжевое создание
Свет, тот линк что ты привела не имеет никакого отношения к этой ошибке.
У него просто есть пользователь с таким именем (с которым он коннектится), а хост не совпадает.
Ему права настроить для пользователя надо.
 

evgkuz

Новичок
Автор оригинала: Апельсин
Свет, тот линк что ты привела не имеет никакого отношения к этой ошибке.
У него просто есть пользователь с таким именем (с которым он коннектится), а хост не совпадает.
Ему права настроить для пользователя надо.
Что я делаю не правильно?

Вот список запросов из shell'а:
Код:
C:\Program Files\MySQL\MySQL Server 4.1\bin>mysql -h localhost -u root -p
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.19-community-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE mysql;
Database changed
mysql> UPDATE user SET password='test' WHERE user='root';
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON mysql.* to root@localhost identified by 'test';
ERROR 1133 (42000): Can't find any matching row in the user table
mysql>
 

Апельсин

Оранжевое создание
> UPDATE user SET password='test' WHERE user='root';

вы обновляете пароль без применения функции password()

- запустите сервер со --skip-grant-tables опцией
- зайдите в базу mysql
- проверьте есть ли у вас пользователь root@localhost и с какими правами
- поставьте ему нормально пароль:
http://dev.mysql.com/doc/refman/4.1/en/passwords.html
 

evgkuz

Новичок
Спасибо Апельсин, я действительно забыл использовать "OLD_PASSWORD". Всё работает.

Вот что нужно сделать чтобы работали PHP4 + MySQL4:

Код:
mysql -h localhost -u root -p

USE mysql;
UPDATE user SET password=OLD_PASSWORD('test') WHERE user='root';
FLUSH PRIVILEGES;
 
Сверху