Akonadi KDE устанавливает непустое значение пароля root для mysql, и я не могу его найти

740
Jason

Недавно я установил 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? И, наконец, (низко опущенная голова) может кто-нибудь сказать мне, как это выяснить?

Спасибо!

Джейсон

3

1 ответ на вопрос

0
Tullo_x86

Вы можете заставить 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 

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

Похожие вопросы