2013-05-22 3 views
0

Для тестирования я почти каждый раз восстанавливаю недавно созданную базу данных MySQL, у меня также есть приложение Php, основанное на этом. Для моего понимания, некоторые значения системных переменных накоплено в каждом перестраивать, такие как:Как удалить или очистить некоторые значения системных переменных после восстановления базы данных mysql?

mysql> show global status like '%tmp%'; 
+-------------------------+-------+ 
| Variable_name   | Value | 
+-------------------------+-------+ 
| Created_tmp_disk_tables | 14062 | 
| Created_tmp_files  | 437 | 
| Created_tmp_tables  | 20854 | 
+-------------------------+-------+ 
3 rows in set (0.00 sec) 

Created_tmp_disk_tables и Created_tmp_tables растут постоянно основаны на каждом перестраивать. Конечно, есть и другие переменные, делающие то же самое. Интересно, как мы можем безопасно их очистить в каждой перестройке, поэтому мы не будем обманывать эти ценности. Мы увидим реальную ценность.

Пожалуйста, не стесняйтесь, дайте мне знать, если вопрос не ясен. Благодарю.

после внушения тестированию @ dwjv, в делать 'флеш статус', получил:

mysql> flush status; 
Query OK, 0 rows affected (0.02 sec) 

mysql> show global status like '%tmp%'; 
+-------------------------+-------+ 
| Variable_name   | Value | 
+-------------------------+-------+ 
| Created_tmp_disk_tables | 14062 | 
| Created_tmp_files  | 0  | 
| Created_tmp_tables  | 20856 | 
+-------------------------+-------+ 
3 rows in set (0.00 sec) 

был очищен переменная 'Created_tmp_files', но другие два не изменились. «Состояние флеша» только сбросит статус сеанса, некоторые, но не все глобальные переменные состояния.

mysql> show status like '%tmp%'; 
+-------------------------+-------+ 
| Variable_name   | Value | 
+-------------------------+-------+ 
| Created_tmp_disk_tables | 0  | 
| Created_tmp_files  | 0  | 
| Created_tmp_tables  | 0  | 
+-------------------------+-------+ 
3 rows in set (0.00 sec) 

Тогда я followd & як предложение 'сервис MySQL перезагрузки', не получил:

mysql> show global status like '%tmp%'; 
+-------------------------+-------+ 
| Variable_name   | Value | 
+-------------------------+-------+ 
| Created_tmp_disk_tables | 14062 | 
| Created_tmp_files  | 0  | 
| Created_tmp_tables  | 20857 | 
+-------------------------+-------+ 
3 rows in set (0.00 sec) 

Тем не менее такой же, никаких изменений.

ответ

1

Все, что вам нужно сделать, это перезапустить сервер.

+0

Спасибо @Як, я сделал то, что вы предложили, однако ничего не изменилось. – user1342336

+0

Это странно. Наверное, глупый вопрос, но я иду ... вы уверены, что перезапустили правильный сервер? То есть, если вы выдаете 'service mysql stop', действительно ли mysql не удается подключиться? – RandomSeed

+0

Я уверен, что перезапустил правильный сервер. У меня только mysql 5.5, установленный в моем Ubuntu. – user1342336

2
FLUSH STATUS; 

Это приведет к смыву многих глобальных переменных.

+0

Спасибо, я просто сделал это, посмотрю мое обновление. – user1342336