Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3 4 5 ... 7   Вниз
  Печать  
Автор Тема: Всякие вопросы по MySQL 5.0+  (Прочитано 125373 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 07-10-2009 09:59 » 

ну в моём случае всё упрощается тем, что к базе только сервер цепляется ) А вот ежели бы...
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 07-10-2009 11:26 » 

не могу понять, что за проблема:

из консоли прекрасно запускается служба
sc start mysql

а из программы никак, GetLastError() говорит "Не удается найти указанный файл. "

Код:
			::ShellExecute(0,0,"sc start mysql",0,0,SW_SHOW);

и даже так
::ShellExecute(0,0,"c:\\windows\\system32\\sc.exe start \"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysql.exe\"",0,0,SW_SHOW);


Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #32 : 07-10-2009 11:47 » 

воть
Код:
::ShellExecute(0,0,"sc","start mysql",0,SW_HIDE);

туплю под конец дня )
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 09-10-2009 06:07 » 

как лучше всего делать бекап базы ? (MyISAM-таблицы)

если командой BAKCKUP TABLE , то как всё разом скинуть в архив, неужели придётся перечислять все таблицы , вытащив предварительно из SHOW TABLES ?


пока создал список таблиц так
(CRowFetching - свой класс для шагания по записям
ExeSQL- своя функция для запуска запроса)
Код:
			//достаём список таблиц
CString csTablesQuotedList="";
{
if(!ExeSQL("show full tables"))return false;

CRowFetching RF(this);

while(RF.GetNextRow())
{
CString s1,s2;
RF.GetField(0,&s1);
RF.GetField(1,&s2);
if(s1!="" && s2=="BASE TABLE")
{
if(csTablesQuotedList=="")
{
csTablesQuotedList+=" ";
}
else
{
csTablesQuotedList+=",";
}
csTablesQuotedList+=s1;
}
}

if(csTablesQuotedList!="")
{
csTablesQuotedList+=" ";
}
}
//csTablesQuotedList - готовый список
« Последнее редактирование: 09-10-2009 07:00 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #34 : 09-10-2009 09:39 » 

почему после выполнения команды

backup tables T1,T2 to ...

не желает выполняться запрос
CREATE TABLE IF NOT EXISTS T1 (f1 BIGINT NOT NULL PRIMARY KEY) ENGINE=MyISAM CHARACTER SET cp1251

?

(без backup всё нормально)
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #35 : 09-10-2009 09:46 » 

ох ти, даже просто

unlock tables

не выполняется
---------------------

ошибка пишется такая - CR_COMMANDS_OUT_OF_SYNC . Значит, что то забыл ещё выполнить, только в доке не написано, что...
« Последнее редактирование: 09-10-2009 10:00 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #36 : 09-10-2009 11:04 » 

gпока ответа не нашёл... Сделал переподключение после бекапа. После реконнекта всё ок, но некузяв как-то мне этот вариант Улыбаюсь
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #37 : 09-10-2009 15:48 » 

Лучший бекап - mysqldump. Как альтернатива - mysqlhotcopy.
Первый способ универсальный и предпочтительный. Второй годится только для MyISAM и он блокирует все копируемые таблицы на время копирования.
Зато второй способ максимально быстр для восстановления, когда первый по сути - последовательное исполнение SQL-команд и для больших баз может работать долго.

Пользоваться SQL-командой BACKUP TABLE не рекомендуется.
« Последнее редактирование: 10-10-2009 09:17 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #38 : 10-10-2009 06:48 » 

хорошо, в понедельник опробую.
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #39 : 12-10-2009 04:12 » 

mysqldump - как пользоваться ? Не пойму, где указать путь для сохранения копии , а кроме того, пытаюсь в консоли запустить утилиту, мне вообще пишут

Код:
C:\Documents and Settings\11111>mysqldump
mysqldump: Character set 'cp1251' is not a compiled char
cified in the 'C:\mysql\\share\charsets\Index.xml' file
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #40 : 12-10-2009 04:17 » 

тут коллега предлагает способ - сгенерить файл в виде SQL запросов вставки для всех таблиц. Только как-то меня смущает такой способ - это же долго...
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #41 : 12-10-2009 05:41 » 

Леш, mysqldump --help - это первым делом. Чай не GUI...

Коллега велосипед предлагает написать - mysqldump это и делает. Причем делает во множестве поз и разными способами и делает много хитрого. Т.ч. второй велик точно не пригодится - нужно на этом учиться кататься.



Не очень понятно, что у тебя за проблема. На всякий случай прилагаю файлы - у меня под виндой стоит 5.1.37.

* cp1251.xml (8.12 Кб - загружено 893 раз.)
* Index.xml (17.83 Кб - загружено 928 раз.)
« Последнее редактирование: 12-10-2009 05:59 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #42 : 12-10-2009 06:11 » 

я читал с хелпом, вот что пробовал

Код:
C:\Documents and Settings\11111>mysqldump -r "C:\1" mybase
mysqldump: Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file

делаю show variables, путь к данному файлу Index.xml какой то левый , в переменных он задан так:
character_set_dir    =    c:\programm files\mysql server 5.0\share\charsets\

где что подправить либо можно ли явно указать путь из переменной для набора?

Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #43 : 12-10-2009 06:22 » 

Убери определение character_set_dir из конфига и укажи basedir - MySQL значение character_set_dir сама определит.

Например, у меня:

basedir="C:/Program Files/MySQL/MySQL Server 5.1/"

Код:
mysql> show variables like 'character_sets_dir'\G
*************************** 1. row ***************************
Variable_name: character_sets_dir
        Value: C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\
1 row in set (0.02 sec)
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #44 : 12-10-2009 06:31 » 

пока не убирал ничего, пробую так
Код:
mysqldump --character-sets-dir="c:\programm files\mysql server 5.0\share\charsets" -r "C:\1" mybase
а так же пробовал и на твои файлы заменять - всё едино, пишет

mysqldump: Character set 'cp1251' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file

щас попробую дистрибутив заново поставить
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #45 : 12-10-2009 06:34 » 

Леш, обрати внимание, что в путях в конфиге используется слеш, а не бекслеш!

И сервер после рестартани. Кодировки используются на стороне сервера, а не на клиенте, которым является и mysqldump.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #46 : 12-10-2009 07:02 » 

одын хрэн
Код:
C:\Documents and Settings\11111>mysqldump --character-sets-dir="c:/programm file
s/mysql server 5.0/share/charsets" -r "C:/1" pioner_skuddb
mysqldump: Character set 'cp1251' is not a compiled character set and is not spe
cified in the 'c:\programm files\mysql server 5.0\share\charsets\Index.xml' file
переустановка+перезапуск не повлияли.

но! ...

Код:
::ShellExecute(0,0,"mysqldump","-r \"C:\\111\\1\"",0,SW_SHOW);

- сработало, создался файл "1" в c:\111\, правда, как и в случае с "sc start mysql" (см выше) GetLastErr возвращает 126 (Не найден указанный модуль. ). Но работает )

дело , походу, в моём cmd
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #47 : 12-10-2009 07:05 » 

Конфиг в студию!

Цитата
GetLastErr возвращает 126 (Не найден указанный модуль. )
И это нормально?..  Быть такого не может
« Последнее редактирование: 12-10-2009 07:06 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #48 : 12-10-2009 07:10 » 

Рома, что подразумевается под "конфиг" ? А так - мне ж не жалко, можно и в студию )
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #49 : 12-10-2009 07:19 » 

Леш, под конфигом я подразумеваю конфиг  Ага
MySQL не из винды родом - реестр не использует и хранит настройки в классическом конфиге типа INI.

См. в папке basedir файл my.ini.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #50 : 12-10-2009 07:21 » 

кстати, файлик "1" то пустой создаётся (( Что то я ещё не учёл

my.ini
Код:
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
#
# Installation Instructions
# ----------------------------------------------------------------------
#
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
#
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:\Program Files\MySQL\MySQL Server 4.1). To
# make sure the server reads the config file use the startup option
# "--defaults-file".
#
# To run run the server from the command line, execute this in a
# command line shell, e.g.
# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"
#
# To install the server as a Windows service manually, execute this in a
# command line shell, e.g.
# mysqld --install MySQL41 --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"
#
# And then execute this in a command line shell to start the server, e.g.
# net start MySQL41
#
#
# Guildlines for editing this file
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
#
# More detailed information about the individual options can also be
# found in the manual.
#
#
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

port=3306

default-character-set=cp1251


# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306


#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"

#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=cp1251

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=170

# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=8M

# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=340

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=9M


# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before.  This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache_size=8

#*** MyISAM Specific options

# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method.  This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method.  This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=8M

# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=8M

# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=252K

# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
sort_buffer_size=189K


#*** INNODB Specific options ***


# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
#skip-innodb

# Additional memory pool that is used by InnoDB to store metadata
# information.  If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS.  As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M

# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1

# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system.  Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=8M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=10M

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8

Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #51 : 12-10-2009 07:23 » 

MySQL у тебя запускается как виндовая служба?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #52 : 12-10-2009 07:25 » 

Посмотри в реестре:

Код:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath = "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL51

Имя службы произвольное. У меня - MySQL51.

defaults-file - это используемый конфиг.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #53 : 12-10-2009 07:33 » 

ImagePath=
"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" MySQL

--------------
насчёт пустого файла - пароль и логин тоже указал, всё равно пустой
Код:
mysqldump -u=login -p=passw -r "C:\111\1" mybase
« Последнее редактирование: 12-10-2009 07:35 от Алексей1153++ » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #54 : 12-10-2009 07:37 » 

Подчистил твой конфиг, чтобы читать можно было:

Код:
[client]
port=3306
default-character-set=cp1251

[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
default-character-set=cp1251
default-storage-engine=INNODB
max_connections=170
query_cache_size=8M
table_cache=340
tmp_table_size=9M
thread_cache_size=8

myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=252K
sort_buffer_size=189K

#skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8

Вопрос первый:

>mysql -u login -p mybase
Password: *****


Работает? Не ругается?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #55 : 12-10-2009 07:43 » 

всё та же самая ругань и происходит
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #56 : 12-10-2009 08:08 » 

даже так попробовал
Код:
::ShellExecute(0,0,"mysqldump",
" --user=..."
" --password=..."
" --result-file=c:\\111\\1"
" --all-databases"
,0,SW_SHOW);


файл по прежнему создаётся, но пустой, хотя должен, по крайней мере, быть с "mysql" базой

что ж я пропустил то?
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #57 : 12-10-2009 08:08 » 

> mysql --help

После хелпа идет такое:

Код:
Default options are read from the following files in the given order:
C:\WINXPX64\my.ini C:\WINXPX64\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 5.1\my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.cnf
The following groups are read: mysql client

А после - выводится значение параметров, с учетом прочитанного в конфиге.

Леш, оставь ShellExecute - работай с консолью! У тебя клинический случай ненастроенного MySQL. А точнее - расстроенного, т.к. даже в дефолтной установке он работает исправно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #58 : 12-10-2009 09:03 » 

ShellExecute оставить не могу по двум причинам:
1) пока, кроме как через него, утилиты MySQL не запускаются
2) из программы я утилиты могу запустить только так ))

что там с ini файлом, я не знаю, всё лежит там, где нужно, настройки я не менял...

победить mysqldump так и не удалось, сделал пока просто копию папки базы
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #59 : 12-10-2009 10:18 » 

в аскесе, помнится, можно было вытащить значение счётчика , которое только что получилось при записи в базу (в текущей транзакции)
Код:
select @@identity

как в MySQL с тем же самым поступить ?
Записан

Страниц: 1 [2] 3 4 5 ... 7   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines