SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.05.2010 07:57:10

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Подключить старые базы MySql

День добрый.

На сервере freebsd8 проводился portupgrade.
По каким-то причинам был удален mysql 5.5.4
На mysql лежало несколько важных баз.

Ставлю сервер заново.
Подскажите пожалуйста как правильно подключить к новому Mysql серверу старые базы.
Все базы лежат по старому пути в /var/db/mysql

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

Интересует принцип процедуры и как это делать правильно.

Заранее спасибо.

Отредактированно kharkov_max (07.05.2010 08:05:39)

Неактивен

 

#2 07.05.2010 23:36:04

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Подключить старые базы MySql

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

1. Если движок MyISAM, то простое копирование.
2. Если движок, что-то типа InnoDB... Тоже возможно копирование, но не факт, что оно будет удачным. big_smile Не знаю тогда. Специалисты, когда придут, ответят.
3. Пользователи и права хранятся в БД mysql. Формат MyISAM.
Либо копирование. С заменой (только пароль старого mysql root'а лучше знать) новой БД mysql.
Либо копировать, как БД с другим именем (имя каталога поменять) в новое место.
mkdir /var/db/new_mysql/old_mysql_db && cp -R /var/db/mysql/mysql/* /var/db/new_mysql/old_mysql_db
Затем:
mysqladmin reload
mysql
use old_mysql_db

Ну и т.д.:
insert into mysql.user select from old_mysql_db odb where odb.User = 'user_name' and odb.Host = 'host_name';
...
insert into  mysql.user select from old_mysql_db odb where odb.User <> 'root';

Аналогично другие необходимые таблицы: права таблиц, права БД, права столбцов и т.д..

Отредактированно Артём Н. (07.05.2010 23:44:05)


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

Неактивен

 

#3 08.05.2010 08:59:11

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

Спасибо.

Уже все заработало.

Решилось так:
После установки Mysql копируем базы в /var/db/mysl/, а потом chown -R mysql:mysql /var/db/mysql

Неактивен

 

#4 08.05.2010 09:34:32

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Подключить старые базы MySql

Ну да... chown, если пользователь под которым mysql был удалён.
Просто, если копировать БД mysql, потеряются все пользователи в новой БД, если они были.
А, если в других БД были таблицы InnoDB (и сейчас ещё новые движки, не знаю), то они могут не работать, если отличаются настройки сервера или чего-то там ещё.


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

Неактивен

 

#5 08.05.2010 12:43:51

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

Не хочу создавать новую тему, но есть еще пара вопросов.

В my.cnf я как то ставил несколько параметров

bind-address = localhost
bind-address = IP-int_lan
default-character-set = utf8

Т.е. средствами mysql вытыкал его на 2 интерфейса и задавал кодировку.
На сервере 3 интерфейса, один смотрит в мир. Вот на него не хотелось бы вешать сервер.
Можно конечно забанить фаерволом, но это немного кривовато ...

Так вот после переустановки сервера, при запуске матерится на эти параметры.
В данный момент bind-address = 0.0.0.0 т.е. все интерфейсы.
а default-character-set = utf8 вообще выключил.

Версия mysql-serevr - mysql-server-5.5.4 по сути последняя в портах.
Как я понимаю в этой версии данных параметров нет или они как то изменены для конфига...

Не подскажете как теперь выткнуть сервер только на 2 интерфейса и задать кодировку utf8 ?

Отредактированно kharkov_max (08.05.2010 12:59:54)

Неактивен

 

#6 08.05.2010 13:22:09

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

Re: Подключить старые базы MySql

А зачем Вам localhost? Локальные соединения лучше через unix-socket делать.

Материться MySQL не умеет, а текст ошибки Вы не привели.

Неактивен

 

#7 08.05.2010 14:28:50

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

paulus написал:

А зачем Вам localhost? Локальные соединения лучше через unix-socket делать.

Суть не в том что localhost можно через цокет делать, а как к примеру средствами Mysql выставить сервер на 2 интерфейса, если скажем всего интерфейсов в сервере 4.

Вот раньше работало, а теперь нет ...

paulus написал:

Материться MySQL не умеет, а текст ошибки Вы не привели.

Извините ...

Ошибку кину чуть позже ...

Неактивен

 

#8 08.05.2010 15:01:36

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

Re: Подключить старые базы MySql

Честно говоря, не помню, чтобы MySQL поддерживал несколько директив
--bind-address (проверил на 5.1, у меня он цепляется всегда к последней).
В любом случае, 0.0.0.0 + ipfw решают проблему — нет?

Неактивен

 

#9 08.05.2010 15:08:20

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Подключить старые базы MySql

Вот раньше работало, а теперь нет ...

Хм... Не знаю актуально ли сейчас, но в FAQ написано, что для FreeBSD кривые порты MySQL...


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

Неактивен

 

#10 08.05.2010 15:39:26

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

Re: Подключить старые базы MySql

Ну, это само собой, но очень многие держатся за эту ОС так же, как многие
держатся за Windows — переубеждать бесполезно. Взять хотя бы то, что в ней
приезжает 5.5й MySQL, который ни разу не стабилен. Ну, такая идеология — 
что тут поделаешь…

Неактивен

 

#11 08.05.2010 16:11:39

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Подключить старые базы MySql

Ну, это само собой, но очень многие держатся за эту ОС так же, как многие
держатся за Windows — переубеждать бесполезно.

Гы-гы:
"- Что такое FreeBSD?
- Ну это тот же windows, только в России.
Вот смотри, BSD - это 'blue screen of death'.
А free - значит бесплатная, как у нас вся windows.
Вот и получается..." %-)

На самом деле, хорошая ОС. Более надёжная, чем Linux. И более простая, со многих сторон (начиная от установки).

Взять хотя бы то, что в ней приезжает 5.5й MySQL, который ни разу не стабилен.
Ну, такая идеология — что тут поделаешь…

Но ведь никто не заставляет использовать MySQL 5.5?
В принципе, FreeBSD далеко не самая плохая ОС. big_smile

Отредактированно Артём Н. (08.05.2010 16:12:02)


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

Неактивен

 

#12 11.05.2010 11:52:19

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

Re: Подключить старые базы MySql

Артём, я не хочу начинать тут flame war. Я сам FreeBSD админил очень немного,
но люди, которые админят много (i.e. 200+) машин FreeBSD и столько же машин
Linux, говорят, что FreeBSD — гадость по сравнению с.

Что касается MySQL — во FreeBSD, начиная, по-моему, с шестой версии, стали по
умолчанию притаскивать бета-версию MySQL (и какие-то странные параметры
сборки, чтобы она таки собралась) в портах. В результате, начиная с шестой вер-
сии, мы получили нестабильно работающий MySQL во фряхах. Ну и кучу вопросов
«не работает InnoDB» на форуме. Я не против FreeBSD, но я против того, чтобы
делать из UNIX систему, которую нужно допиливать напильником. Благо, это время
уже в остальных системах давно прошло.

Неактивен

 

#13 12.05.2010 12:01:07

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

Не думал что начнется такое обсуждение ...
Freebsd неплохая система, но есть бока. Точно так же как и в других ОС.

1. Вот что выдает в лог когда ставлю параметр default-character-set = utf8

Код:

100512 10:28:33 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use InnoDB's own implementation
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
100512 10:28:33 [ERROR] Plugin 'InnoDB' init function returned error.
100512 10:28:33 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100512 10:28:33 [ERROR] /usr/local/libexec/mysqld: unknown variable 'default-character-set=utf8'
100512 10:28:33 [ERROR] Aborting

Судя из лога сервер не знает что есть такой параметр.

2. Возможно порт апгрейд, который я делал обновил мне mysql до более новой версии.
Какая стояла я незнаю ...
Но 2 параметра bind-address = localhost и bind-address = IP-int_lan работали.

В моем сервере 2  интерфейса (2 провайдера и локалка) так вот при помощи этих опций я высталял сервер только в локалку и localhost методом самого mysql. Фаерволом конечно можно закрыть, но сегодня вы закрыли а через пол года чисто случайно забыли и открыли.
Т.е. мое мнение такое что сам mysql должен уметь работать по определенным интерфейсам.

PS.
То что эти глюки связаны с разными версиями mysql у меня уже нет сомнений.
В данный момент у меня стоит версия mysql-server-5.5.4 как я понимаю она бетта ... Это верно ?
Уйдут ли глюки если я перейду на 5.1 и нормально ли перетянутся с 5.5.4 на 5.1 базы.
Для того софта который юзает mysql все равно какая версия т.е. может быть 5.1 а может и 5.5.4.
Или может подскажете как решить эти проблямы на 5.5.4 ?

Неактивен

 

#14 12.05.2010 12:07:40

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

Ха ...
2й вопрос снимается.
bind-address = localhost и bind-address = IP-int_lan прописывал через DNS, прописал реальные IP все взлетело...
Т.е. сейчас сервер 5.5.4 работает на 2х интерфейсах 127.0.0.1 и INT_IP.
Ругалось в логе на это так:

Код:

100512 10:58:51 [Note] /usr/local/libexec/mysqld: Shutdown complete

100512 10:58:51 mysqld_safe mysqld from pid file /var/db/mysql/gateway.mkh.local.pid ended
100512 10:58:53 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
100512 10:58:53 [ERROR] Can't start server: bind-address refers to multiple interfaces!
100512 10:58:53 [ERROR] Aborting

Может эта версия не может преобразовать в данном параметре доменное имя в IP или у меня проблема с ДНС (но все остальное через ДНС работает верно) ...

А вот вопрос 1 пока висит в воздухе.

Неактивен

 

#15 12.05.2010 12:21:00

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

Re: Подключить старые базы MySql

А вопрос 1 Вы в логе прочитали неверно. Надо смотреть на строчки
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!

Размер файлов логов должен совпадать — реальный и в файле конфигурации.

Неактивен

 

#16 12.05.2010 12:25:43

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

По данной статье http://dedic.ru/node/213 вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8 и мои глюки были решены.

Глюки были такие. Есть сайт на который можно добавлять файлы (Word, Exel, html). Так вот файлы с русскими наименованиями, добавлялись, но вместо русских символов были ????????, со старыми файлами (отображение на сайте) все было нормально.
После включения параметра character-set-server=utf8 все нормализовалось ....

Буду надеятся, что вопрос решен.
Спасибо всем  за помощь ...

Неактивен

 

#17 12.05.2010 12:27:18

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

paulus написал:

А вопрос 1 Вы в логе прочитали неверно. Надо смотреть на строчки
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!

Размер файлов логов должен совпадать — реальный и в файле конфигурации.

И больше таких ошибок в логе нет !!!

Неактивен

 

#18 27.06.2011 13:11:34

lemuriec
Участник
Зарегистрирован: 27.06.2011
Сообщений: 1

Re: Подключить старые базы MySql

to kharkov_max
Братан! Спасибо тебе огромное за "вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8". Больше месяца не мог решить проблему с вопросиками. Прекланяюсь)  от души.

Неактивен

 

#19 27.06.2011 13:31:33

kharkov_max
Завсегдатай
Зарегистрирован: 12.09.2009
Сообщений: 62

Re: Подключить старые базы MySql

lemuriec написал:

to kharkov_max
Братан! Спасибо тебе огромное за "вместо параметра default-character-set = utf8 с которым все раньше работало поставил параметр character-set-server=utf8". Больше месяца не мог решить проблему с вопросиками. Прекланяюсь)  от души.

Пожалуйста.

Кто ищет - тот всегда найдет ... )))

Отредактированно kharkov_max (27.06.2011 13:36:12)

Неактивен

 

Board footer

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