#mysql #phpmyadmin #wamp
#mysql #phpmyadmin #wamp
Вопрос:
У меня есть таблица с 38.406.168 строками и размером в phpmyadmin 4,5 ГБ. Я хочу увидеть последнюю строку таблицы. К сожалению, я не мог использовать select * from ... limit 38.406.166,1
или даже не мог использовать select count(*) from ...
функцию.
Я изменил свой .ini на сервере wamp, но все равно получаю сообщение об ошибке mysql server has gone away при попытке выполнить один из этих запросов. Кстати; Я даже не смог установить индекс для ID, чтобы ускорить эти процессы.
Моей последней попыткой было экспортировать таблицу, чтобы просмотреть последнюю строку. Однако он просто показывает мне 123 МБ файла.
Что мне делать? Пожалуйста, помогите мне. Характеристики компьютера — 2,93 ГГц, 3,50 ГБ Вот мой файл my.ini:
# The MySQL server
[wampmysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 2000M
table_cache = 4096
sort_buffer_size = 2000M
net_buffer_length = 8K
read_buffer_size = 2000M
read_rnd_buffer_size = 2000M
myisam_sort_buffer_size = 2000M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data
(.. these parts are deleted, since there is nothing to set as value)
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:mysqldata/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:mysqldata/
#innodb_log_arch_dir = C:mysqldata/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 10M
#innodb_log_buffer_size = 64M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 180
[mysqldump]
quick
max_allowed_packet = 160M
Большое спасибо за вашу помощь
Ответ №1:
Я много чего перепробовал, и в итоге эти 2 работали:
- Просто зеркально отобразите базу данных с помощью внутренних функций master-slave mysql (попробуйте Google, вы найдете хорошие руководства) на простом сервере резервного копирования (большинство дешевых пакетов хостинга будут работать, если у них есть доступ по ssh)
- Попробуйте http://www.mysqldumper.net /, лучший инструмент для копирования и разделения огромных баз данных на части размером 100 мб. Этот простой инструмент с открытым исходным кодом сделал все, что не могли сделать «профессиональные» сценарии резервного копирования.
Ответ №2:
Для этого вам потребуется использовать команду mysqldump. Вот что я делаю в Linux, но я думаю, что это будет переведено на Windows (я вижу, что вы используете WAMP).
mysqldump --opt --force -Q --user=[your_user] -p [database_name] > dump.sql
Возможно, вам потребуется изменить каталог на тот, в котором находится файл mysqldump:
компакт- диск c:pathtomysqlbin
Комментарии:
1. Спасибо за ответ. Я тоже попробовал mysqldump. Но он также создает sql-файл размером 112 МБ, который содержит только половину данных в таблице. Мне нужно видеть все целиком. Так что я должен изменить размер дампа, я думаю. Я просмотрел параметры mysqldump и не смог увидеть такого переключателя
2. Я не думаю, что вам нужно менять какие-либо настройки, чтобы создать дамп большой базы данных. Возможно, убедитесь, что ваша база данных в порядке, выполнив эту команду: mysqlcheck -Aao —auto-repair