Внезапно мой локальный сервер MySQL 5.5 перестал работать на моем Windows XP SP3.
У меня также установлены WAMP Apache и WAMP MySQL, но WAMP MySQL не работает. Журнал ошибок показывает:
Я попытался изменить порт с 3306 на 3307, но служба все равно не запускалась, выдавая ошибку:
Средство просмотра событий показывает:
Судя по всему, я могу запустить mysql_upgrade, только если сервер запущен. Как я могу создать mysql.host, если сервис не запускается?
Я удалил MySQL Server и переустановил его, и во время работы мастера настройки после установки я получаю сообщение об ошибке: не удалось запустить службу. Ошибка: 0.
Как мне действовать дальше?
Выполните следующую команду
mysql_install_db
инициализировать mysql перед запуском в Windows.
mysqld --initialize
Первое, что вам нужно сделать, это выполнить следующие команды:
use mysql
show tables;
Обратите внимание на различия
MySQL 5.0 имеет 17 таблиц в схеме mysql
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
MySQL 5.1 имеет 23 таблицы в схеме mysql
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
MySQL 5.5 имеет 24 таблицы в схеме mysql
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
Обратите внимание, что mysql.plugin не существует в MySQL 5.0. Очень правдоподобно предположить, что вы каким-то образом установили MySQL 5.0 и заставили исчезнуть жизненно важные таблицы для MySQL 5.5.
Вот хорошие новости. Есть кое-что, что вы можете попробовать.
Для этого примера
Вот ваши шаги
Вот и все.
Если вы используете это в Windows, должны применяться те же принципы.
Попробуйте !!!
ОБНОВЛЕНИЕ 2011-07-29 16:15 EDT
Если у ваших имен пользователей были особые привилегии БД, вот ваши шаги
Не удалось запустить службу. Ошибка: 0.
Добавьте путь MySQL к переменным среды.
похоже, у вас уже запущен mysql
пытаться
ps ax|grep mysql
Если вы видите какой-то вывод, возможно, вам нужно остановить его (или перезагрузить).
если вы не видите вывода, попробуйте запустить mysqld без демонизации и посмотрите вывод.
Я добавил тег Windows, чтобы помочь людям ответить на вопрос.
Мой опыт - не окна, но принципы применимы.
Есть ли уже запущенный процесс mysql? В таком случае вам нужно будет убить его перед удалением. Если он все еще работал, когда вы пытались удалить / переустановить, у вас будут зависать процессы и файлы, которые мешают вам полностью удалить.
Откройте окно служб, найдите что-нибудь, в имени которого есть mysql, и убедитесь, что он настроен так, чтобы не пытаться начать с перезагрузки. Затем откройте вкладку запущенных процессов в окне запущенных программ (используйте CTRL-ALT-DEL для открытия) и найдите и завершите запущенные процессы с mysql в имени.
Если вы удовлетворены тем, что больше нет запущенных процессов mysql, вы можете продолжить. Вы можете перезагрузить компьютер, чтобы убедиться, что запущенные процессы mysql больше не работают.
В это время вы сможете переустановить и запустить mysql.
Запустите mysql-test-run, и вы должны увидеть следующий результат:
./mysql-test-run
Logging: ./mysql-test-run
2013-09-14 03:39:32 2566 [Warning] Setting lower_case_table_names=2 because file system for /var/folders/fr/sn4l2f393_v_ytcwkb0lx7_40000gp/T/_M2mZFQPjV/ is case insensitive
2013-09-14 03:39:32 2566 [Note] Plugin 'FEDERATED' is disabled.
2013-09-14 03:39:32 2566 [Note] Binlog end
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'MyISAM'
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'CSV'
MySQL Version 5.6.13
Checking supported features...
- SSL connections supported
Using suites: main,sys_vars,binlog,federated,rpl,innodb,innodb_fts,perfschema,funcs_1,opt_trace,parts,auth_sec
Collecting tests...
- adding combinations for binlog
- adding combinations for rpl
Removing old var directory...
Creating var directory '/Users/das/mysql/mysql-5.6.13-osx10.7-x86_64/mysql-test/var'...
Installing system database...
Using server port 50409
==============================================================================
TEST RESULT TIME (ms) or COMMENT
--------------------------------------------------------------------------
Если вы перемещаете свой datadir, вам нужно не только предоставить новые разрешения datadir, но и убедиться, что все родительские каталоги имеют разрешение.
Я переместил свой datadir на жесткий диск, смонтированный в Ubuntu как:
/media/*user*/Data/
и мой датадир был Базы данных.
Мне пришлось установить права 771 для каждого из носителей, пользователь и каталоги данных:
sudo chmod 771 *DIR*
Если это не сработает, другой способ заставить mysql работать - сменить пользователя в /etc/mysql/my.cnf на root; хотя, без сомнения, есть некоторые проблемы с этим с точки зрения безопасности.