mysqld_multi stop 1
за которым следует (несколько раз, несколько мгновений спустя)
mysqld_multi report 1
возвращает:
Reporting MySQL servers
MySQL server from group: mysqld1 is running
Экземпляры работают нормально, и когда я перезагружаюсь, мне приходится запускать экземпляры, чтобы они вернулись обратно (отдельная проблема, которую мне нужно решить), но stop
команда, похоже, ничего не делает.
Это действительно не останавливает экземпляр, потому что в файле журнала экземпляра я вижу следующее: 120619 11:12:39 mysqld_safe A mysqld process already exists
после попытки бежать start
после.
Каждый раз, когда это происходит, я обычно пытаюсь закрыть mysql, используя mysqladmin
Например, чтобы отключить mysql, работающий на порту 3307
mysqladmin -h127.0.0.1 -P3307 -uroot -p shutdown
После запуска убедитесь, что mysql на этом порту действительно не работает, например:
mysqladmin -h127.0.0.1 -P3307 -uroot -p ping
Попробуйте !!!
Чтобы остановить любой экземпляр mysqld_multi
привилегии должны быть предоставлены multi_admin
пользователь. Пожалуйста, проверьте также часть грантов.
Эта проблема все еще присутствует в MYSQL 5.7.7. Звучит забавно, но решение проблемы заключается в использовании пароля вместо пароля в my.cnf для пользователя группы [multi_admin].
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
pass = pass123
после завершения работы службы mysql (используя mysqladmin -h127.0.0.1 -uroot -p shutdown
) и запустить его снова, мне не удалось подключиться к этому серверу из внешние клиенты
Я поискал проблему и нашел этот вопрос, применил ответ, так что проблема решена. это было из-за ненужного DNS обратного запроса mysqld.
mysqld_multi - это просто сценарий Perl. Зачемmysqld_multi start 1
и mysqld_multi report 1
работает, но mysqld_multi stop 1
нет, лежит в my_print_defaults.
my_print_defaults mysqld_multi -s
--mysqld=/usr/bin/mysqld_safe
--mysqladmin=/usr/bin/mysqladmin
--user=multi_admin
--password=yy
my_print_defaults mysqld_multi
--mysqld=/usr/bin/mysqld_safe
--mysqladmin=/usr/bin/mysqladmin
--user=multi_admin
--password=*****
В MySQL5.6 + , пароль будет отображаться в ""по умолчанию, mysqld_multi
запуск, отчет не требует авторизации, поэтому пароль бесполезен, и он работает, но при остановке для авторизации требуются пользователь и пароль, и "" ломается mysqld_multi stop
.
Решения:
-s
опция my_print_defaultsРешение @RolandoMySQLDBA работает только потому, что mysqld_multi, наконец, будет полагаться на mysqladmin для администрирования экземпляра mysqld