3

Недавно я установил openSUSE 12.2 vm и выбрал KDE в качестве рабочего стола. KDE (4.3) поставляется с приложением под названием «akonadi», которое использует mysql. В результате mysql, похоже, предварительно настроен с непустым корневым паролем. Причина, по которой я настроил openSUSE vm, заключается в том, что я написал скрипт установки для некоторого программного обеспечения и хочу, чтобы он работал на openSUSE. На fedora/rh я могу предвидеть, что mysql будет установлен с пустым корневым паролем, а затем дать пользователю выполнить mysql_secure_installation. В debian/ubuntu debconf заставляет пользователя вводить пароль root для mysql во время установки сервера mysql. Но я, наверное, всегда выбирал gnome раньше, поэтому, возможно, это не сработает, если я выберу kde.

Во всяком случае, мой вопрос сводится к: действительно? Действительно ли kde устанавливает непустой пароль root при настройке mysql для akonadi? и правда? Неужели это сложнее, чем поискать в Google? И, наконец, (низко опущенная голова) может кто-нибудь сказать мне, как это выяснить?

Спасибо!

Джейсон

1 ответ1

0

Вы можете заставить MySQL/MariaDB установить свой пароль root, запустив процесс как root (без подключения к сети) и войдя в систему без пароля, а затем выполнив команду ALTER USER чтобы изменить пароль root. Большую часть этого я читаю здесь. Процедура немного отличается от MariaDB, но должна быть синтаксически эквивалентной.

Мне просто нужно было сделать это в сообществе MySQL 5.7.18 (в Fedora 24), поэтому известно, что оно работает как минимум на одной системе.

  1. Остановите все экземпляры mysqld , отправив им SIGTERM (например, через htop) или отключив их от менеджера сервисов (sudo systemctl stop mysqld.service)
  2. Запустите MySQL как система корневого пользователя и раскошелиться его в фоновом режиме с:

    $ sudo mysqld --skip-grant-tables --skip-networking --user=root &
    
  3. Теперь, когда MySQL работает (и ужасно уязвим, отсюда и аргумент --skip-networking), войдите в него:

    $ sudo mysql -u root
    
  4. Загрузите пользовательскую таблицу MySQL, чтобы мы могли ее редактировать:

    mysql> FLUSH PRIVILEGES;
    
  5. Установите новый пароль для пользователя root MySQL. Убедитесь, что вы правильно избегаете забавных персонажей.

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'correct \'horse\' battery staple';
    mysql> exit;
    
  6. Отправьте MySQL еще один SIGTERM:

    $ sudo kill `cat /var/run/mysqld/mysqld.pid`
    
  7. Запустите MySQL снова нормально:

    $ sudo systemctl start mysqld.service
    
  8. Убедитесь, что теперь вы можете войти с паролем пользователя root MySQL:

    $ mysql -u root -p
    

Вам будет предложено ввести пароль, и вы вуаля!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .