SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 11.02.2010 13:35:36

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Применение "чужого" mysqldamp-a

Есть работающий огрызки от серевера 3.23.46-max-debug т.е. нет родного mysqldamp от этой версии. Пароль root утерян. "Срубаю" старый пароль (везде эта процедура почему-то называется "восстановлением забытого" ха-ха!) Беру mysqldamp от версии 5.**.**  и пишу:
c:\...\mysqldamp --opt -u root -p(новый пасс) (имя базы)  >  (имя файла)
а он мне в ответ:
Coldn't execute  '*!40100 SET @@SQL_MODE='' */': Query was empty (1065)
Оно, могет, не красиво дампить сервер 3.** с помощью скипта от 5.**  Или тут другая проблема?
Обращаюсь ко всем, подайте пож. дистрибутив 3.23.46-max-debag для WinXP !!
Ходил на mysql.com там всё стало так красиво,...чувствуется скоро Oracl покажет всем..., но в архивах только описания!

Неактивен

 

#2 11.02.2010 16:58:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

А mysqldump --compatible=mysql323 не пробовали? Кажется, это проще.

С официального сайта и зеркал и правда исчезло. Гугл выдает, например,
http://www.mysql.ru/download/

Неактивен

 

#3 11.02.2010 18:16:09

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Нет, теперь пишет:

Coldn't execute  '*!40100 SET @@SQL_MODE='MYSQL323' */': Query was empty (1065)

и файлик создаёт с желаемым именем, но он пустой!

Неактивен

 

#4 11.02.2010 18:19:54

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Ых, не то sad
Жаль, похоже, что не получится. А доступ к файликам есть? Может, просто
погасить тот сервер, скопировать файлики бинарно, и обновить на пятерке?

Ну или действительно поставить старый dump...

Неактивен

 

#5 12.02.2010 12:08:47

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Честно говоря — не понял, что Вас не устраивает. Вы взяли бинарно старые базы
и запустили их под пятеркой. По хорошему, над ними теперь неплохо бы выполнить
mysql_upgrade (он добавит новые колонки в таблички mysql.* и обновит формат
хранения данных). Единственное «но»: нужно быть уверенным, что в разделе
[mysqld] прописан default_character_set = кодировке символов в базе, иначе потом
могут быть большие проблемы с кодировками.

Насколько я понял, у Вас всё завелось и работает, чего же ждать боле? smile

Неактивен

 

#6 12.02.2010 16:00:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Бинарно — это минуя текстовый дамп smile

Если остановить оба сервера, целиком скопировать каталог data, проставить
права доступа пользователю, под которым запускается новый сервер, и
запустить его, и сделать mysql_upgrade.

После этого у Вас должен получиться рабочий сервер — такой же, как был
3.23, но пятерка. Один минус — вы не знаете от него пароля. Пароль можно
сделать так, как написано в http://webew.ru/articles/2104.webew (т.е. запустить
сервер со skip-grant-tables и сделать flush privileges и
grant all on *.* to specialuser@localhost with grant option). Тогда у Вас будет
новый пользователь specialuser, который сможет раздавать гранты, и при этом
у Вас останутся старые пользователи и данные — в том виде, в котором они
были в 3.23.

Неактивен

 

#7 14.02.2010 22:45:59

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

В чем осталась проблема то? smile

Неактивен

 

#8 15.02.2010 09:11:11

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Да, вобщем-то, проблема у всех нас одна - ни чёрта не знаем, и мучаем людей!
И краткость - сестра не моего таланта! Попробую ещё раз:

1)Есть обрывки от сервера 2.23.46-max-debag и клиент на С++
У меня нет пользователя, именно, от которого запускается mysqld. У user-a 'admin' в системной базе всй запрещено! Клиент конектется по своему зашифрованному паролю.
------------------------------------------------------------------------------------------------
# my.cnf
# Конфигурационный файл СУБД MySQL.
#

[client]
user=admin
password=
character-sets-dir=c:/sql/server/share/charsets

[mysqld]
port=3306
skip-locking
skip-innodb
default-character-set=cp1251
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
set-variable = flush_time=1800
basedir = c:/sql/server/
datadir = c:/sql/server/data/
#log
#log-update
-----------------------------------------------
и два бата:
----------------------------------------------
@echo off
rem Сценарий запуска СУБД MySQL

echo MySQL Server is starting on %COMPUTERNAME%.
echo Hint: To stop DB server, please, run stop.bat
c:\sql\server\bin\mysqld --defaults-file=c:\sql\server\my.ini
--------------------------------------------------------------------------
@echo off
rem Сценарий остановки СУБД MySQL

echo MySQL Server is stopping.
c:\sql\server\bin\mysqladmin --defaults-file=c:\sql\server\my.ini shutdown
pause
------------------------------------------------------------------------------------------------------

2) Ставлвлю новый полный дистрибутив 3.23.58, переписываю в нём от старого сервера: my.ini, stasrt.bat, stop.bat и систмную базу 'mysql' .

3) Конектюсь клиентом на С++ и прошу сделать, встроенными в клиент средствами,  новую базу с именем хххх. Скрипт прилагаю. Не выходит. Перехватываю сниффером пакеты по сети, вижу:
-клиент:DROP DATABASE IF EXISTS xxxx
-sql: (видимо) -NO    (не читаю я свободно HEX)
-клиент:CREATE DATABASE хххх
-sql:(видимо) -o'k
-клиент USE хххх
-sql:(видимо) -o'k
-клиент: CREAT TABLE alts(...............
--------------------------------- далее всё видимо из скрипта, но не проверял, много там!
sql: в следующем пакете - Invalid default value for 'Pay Type'  - бамс и пустая папка с именем хххх

В скрипте там начинаются русские буквы.  Откуда Invalid value, если я переписал "бинарно"  старую системную базу mysql, с которой эта функция работала на старой версии MySQL;


Прикрепленные файлы:
Attachment Icon opus.sql, Размер: 13,314 байт, Скачано: 1,114

Неактивен

 

#9 15.02.2010 14:09:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

А почему Вам не нравится копировать бинарно *все* базы данных?

Чтобы избежать ошибок попробуйте во всех вхождениях PayType в скрипте
убрать кусок с default, т.е. заменить как-то так:
PayType enum('а/м','бнгбпюр','йюяяю','опнхгбндярбн','═══') NOT NULL default 'а/м',
должно стать
PayType enum('а/м','бнгбпюр','йюяяю','опнхгбндярбн','═══') NOT NULL,

Слова «бнгбпюр» — в странной кодировке, возможно, ее тоже стоит преобразовать.

Неактивен

 

#10 15.02.2010 19:03:40

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Дык! Не помогло!
По сценарию, клиентская часть сама создаёт пользовательские базы и я их не администрирую.
В системной базе только два пользавателя: root, который я срубил, и второй -seperusr, пароль  которого передаётся в зашифрованном виде (каждый раз новый). По нему конектется клиентская часть.

У Вас видно тоже проблема с кодировкой. Это Юникод (наверно!)
выглядит в Win-блокноте так:
PayType enum('Б/Н','ВОЗВРАТ','КАССА','ПРОИЗВОДСТВО','   ') NOT NULL default 'Б/Н',
Новый сервер возвращает:
Error Code: 1067
PayLoad: Invalid default value for 'PayType'

Со старым mysqld всё катилось!

Неактивен

 

#11 15.02.2010 21:43:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Ну, тем не менее, Ваша проблема должна решиться удалением DEFAULT wink

Неактивен

 

#12 17.02.2010 22:09:54

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Ура! всё заработало! Убрал default, прошёл 3.**, 4.0, 4.1, а 5.0 споткнулась на
Condition varchar(24) default NULL,
Hidden tinyint(1) NOT NULL default '0',     в момент создания таблиц CREATE TABLE materials и вернула:
You have an error in your SQL syntax; Check the manual that corr.......бла-бла... at line 1.

Отредактированно proot (17.02.2010 23:12:52)

Неактивен

 

#13 17.02.2010 22:47:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Ненене, Дэвид Блейн! smile

На форуме все обсуждения бесплатные, платная только внефорумная поддержка.
А ошибку если еще до конца напишете — то могу попробовать угадать, где
же она есть smile

Неактивен

 

#14 17.02.2010 23:21:27

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Ну, мимо раздела "услуги" мне по-любому не проехать. Но надо подготовиться!
"пятёрку" бросим, оставим на внефорум.
Следующая проблемка в том, что:
клиентская часть имеет "чекбокс" - ШИФРОВАНИЕ. Ставим там галочку, то нет соединения с сервером.
Последняя фраза програмера звучала так: "надо на гейте по шаманить". Где то в внутри  HEX кода DLL я видел много фраз относяшихся к Open SSL.
Как включить шифрование на сервере? Это относиться к MySQL или к системе?
Вот!

Неактивен

 

#15 18.02.2010 16:21:06

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

В MySQL можно включить шифрование трафика с использованием OpenSSL.
Для того, чтобы это заработало, нужно запустить сервер с указанием ключей
для серверного сертификата.

Неактивен

 

#16 18.02.2010 22:15:24

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: Применение "чужого" mysqldamp-a

Скажите пожалуйста, а если я не знаю ни чего про ключи, которые прописаны в клиентской части, стоит ли ломать голову с серверной частью? Или они "вдвоём" лезут каждый раз за новыми опенсорсными ключами?

Неактивен

 

#17 19.02.2010 00:10:00

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Применение "чужого" mysqldamp-a

Скорее всего, Вам вообще не нужно шифрование на этом уровне smile
Про шифрование и ключи можете почитать, например, статью.

Неактивен

 

Board footer

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