Wtf debian-sys-maint?

Переносили базы mysql в debian из другой опрерационной системы или повредили базу с названием «mysql», или имели счастье установить ее заново? ) Поздравляю, возможно у вас теперь появилась такая вот проблема:

debatest:~# /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)' debatest:~# /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

Как это исправить? И что это вообще за пользователь такой? Итак, открываем /etc/mysql/debian.cnf находим в нем строку password, запоминаем — это пароль пользователя debian-sys-maint, нужного для запуска хотя-бы проверки таблиц при старте сервера. Заходим в клиента mysql и выполняем два запроса:

GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘— тут пишем его пароль —‘;
GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘— тут пишем его пароль —‘ WITH GRANT OPTION;

После этого ошибка исправляется и мы плывем дальше. )

Оригинал: http://www.liveinternet.ru/users/stasikos/post80304705/

Включаем InnoDb под Linux

Открываем /etc/my.cnf

Добавляем

[mysqld]
# InnoDB settings
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:100M:autoextend
set-variable = innodb_buffer_pool_size=100M
set-variable = innodb_additional_mem_pool_size=10M
innodb_flush_log_at_trx_commit=1

Убираем skip-innodb. Перезагружаем — пользуемся.

mysql — изменить пароль

Итак, продолжаем гид по работе с свежекупленным серваком.
Первое что я заметил при запуске top, что mysqld уже запущен. Стандартный пустой пароль не подошел. Для смены пароля пришлось малец похимичить. Оригинал метода путем отшелушивания зерен от плевел можно найти здесь.

1. Останавливаем сервис
/sbin/service mysqld stop

2. Запускаем без проверки таблиц прав:
/usr/bin/mysqld_safe —skip-grant-tables &
3. Заходим без пароля под root-ом
mysql -u root
4. Меняем пароль SQL коммандой
UPDATE mysql.user SET Password=PASSWORD(‘новый пароль’) WHERE User=’root’;

5. Рестартуем сервис
/sbin/service mysqld restart