KDE 的 akonadi 将 mysql root 密码设置为非空值,我找不到它

KDE 的 akonadi 将 mysql root 密码设置为非空值,我找不到它

我最近设置了一个 openSUSE 12.2 vm,并选择了 KDE 作为桌面。KDE(4.3)恰好附带了一个名为“akonadi”的应用程序,而该应用程序恰好使用了 mysql。结果是 mysql 似乎预先配置了一个非空的 root 密码。我设置 openSUSE vm 的原因是我为某个软件编写了一个安装脚本,并且希望它在 openSUSE 上运行。在 fedora/rh 上,我可以预期 mysql 会使用空的 root 密码进​​行安装,然后让用户运行 mysql_secure_installation。在 debian/ubuntu 上,debconf 会让用户在安装 mysql 服务器期间输入 mysql root 密码。但是,我以前可能一直选择 gnome,所以如果我选择 kde,这可能不会起作用。

无论如何,我的问题归结为:真的吗?在为 akonadi 配置 mysql 时,kde 真的设置了非空的 root 密码吗?真的吗?找出它设置的值真的比谷歌搜索更难吗?最后,(低着头)有人能告诉我如何找到它吗?

谢谢!

杰森

答案1

你可以通过以 root 身份启动进程(无需联网)并无密码登录,然后执行更改 root 密码来强制 MySQL/MariaDB 设置其 root 密码ALTER USER。我读过的大部分内容这里. 程序是轻微地在 MariaDB 上有所不同,但在语法上应该是等效的。

我只需要在 MySQL 5.7.18 Community(在 Fedora 24 上)上执行此操作,因此已知它可以在至少一个系统上运行。

  1. mysqld通过发送SIGTERM(例如通过htop)或从服务管理器关闭它们来停止任何实例( sudo systemctl stop mysqld.service
  2. 启动 MySQL 作为系统root 用户并使用以下命令将其分叉到后台:

    $ sudo mysqld --skip-grant-tables --skip-networking --user=root &
    
  3. 现在 MySQL 正在运行(并且极易受到攻击,因此有--skip-networking争论),登录到它:

    $ sudo mysql -u root
    
  4. 加载 MySQL 的用户表,以便我们可以编辑它:

    mysql> FLUSH PRIVILEGES;
    
  5. 为 MySQL 的 root 用户设置新密码。确保正确转义所有奇怪的字符。

    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. 验证您现在可以使用 MySQL root 用户的密码登录:

    $ mysql -u root -p
    

系统将提示您输入密码,然后瞧!

相关内容