5

自从升级操作系统以来,我已经安装了 mysql。但是root密码好像有问题。我已经尝试在网络上以多种方式解决此问题,但到目前为止还没有成功。

systemctl status mysql.service给出:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2018-05-02 16:57:24 +07; 13s ago
  Process: 6172 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=217/USER)
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Service hold-off time  over, scheduling restart.
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Scheduled restart job,  restart counter is at 5.
Thg 5 02 16:57:24 thiennguyen systemd[1]: Stopped MySQL Community Server.
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Start request repeated too quickly
Thg 5 02 16:57:24 thiennguyen systemd[1]: mysql.service: Failed with result 'exit-code'.
Thg 5 02 16:57:24 thiennguyen systemd[1]: Failed to start MySQL Community Server

journalctl -xe给: http ://codepad.org/6EbGVu2Q

mysql_secure_installation给出:

Securing the MySQL server deployment.
Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

mysql -u root -p给出:

Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

特别是在我安装的时候,mysql不需要设置root密码,我已经重新安装了很多次。可能是老问题了,但是我在网络上找了很多方法都解决不了,期待大家的帮助。

4

6 回答 6

10

标记为正确的答案在技术上是不正确的。Ubuntu 18.04 使用套接字进行授权而不是密码!

https://websiteforstudents.com/mariadb-installed-without-password-prompts-for-root-on-ubuntu-17-10-18-04-beta/

对我来说登录很简单:

sudo  mysql -u root      

我觉得负责这个“功能”的人真的丢了球。应该有一条消息指出 Ubuntu 在尝试运行 mysql 时不再使用密码。这是功能上的巨大变化。

于 2018-06-07T16:22:55.510 回答
3

您必须在安全安装时更改 MySQL 的旧密码。如果您不记得旧密码,请通过 root 权限尝试以下方式:-

停止 MySQL 服务。

service mysql stop

在没有密码和权限检查的情况下启动 MySQL。

mysqld_safe --skip-grant-tables &

连接到 MySQL

mysql -u root mysql

运行以下命令为 root 用户设置新密码。

UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
service mysql restart

一些新版本不支持上面的UPDATE查询尝试在下面使用

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
于 2018-05-07T12:22:46.580 回答
1

我知道这个问题,并且在使用 16.04 时从未发生过。而在 18.04 中,我只是试图用它来解决。

sudo mysql_secure_installation

在这种情况下,我可以设置我的密码,但它不起作用

并且该代码并不能解决问题。

UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
于 2018-05-29T21:11:08.213 回答
1

安装后只需:

  1. sudo mysql
    

    (是的,没有用户没有通过)

  2. 您现在在 mysql 控制台中:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
    
  3. FLUSH PRIVILEGES;

  4. 就是这样。现在您可以像往常一样下次进入控制台:

    mysql -u root -p my_new_pass
    
于 2019-06-12T12:36:29.303 回答
0

我尝试了大约 24 小时以消除这些错误并使用相同的数据库从 16.04 迁移到 18.04,但我查看的所有网页都没有帮助我。那是地狱。

尝试systemctl status mysql.servicejournalctl -xe是一个死胡同——没有线索。

但是错误:

无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

让我明白,18.04 上的 mysql-server 有一点不同的结构。在安装过程中,我多次看到类似的文件:/etc/mysql/FROZEN。

只有我深入阅读它才能理解,我的错误来自不同版本的 MySQL。它说我启动了降级(从 mysql-server-5.7 到 mysql-server-5.6),尽管我确信我没有这样做,因为我正在安装 mysql-server-5.7。

对我有用的唯一解决方案是: 手动从 /var/lib/mysql 中删除所有文件(和数据库)并重新安装 mysql-server 和 mysql-client

我将它们复制到不同的位置,但我无法恢复它们。因此,问题出在数据库中,无法迁移。而且我也找不到适用于 Ubuntu 18.04 的 mysql-server-5.6(我读到,有人通过手动编译来做到这一点)。幸运的是,它是在测试服务器上制作的,所以没有任何价值损失。但无论如何,下次我将在 Ubuntu 版本迁移之前进行 MySQL 数据库备份并进行全新安装,而不是尝试保留现有数据库

于 2019-01-03T11:12:11.667 回答
0

我在使用 MySQL 和 MariaDB(ubuntu 18.04)时也遇到了很多问题。我无法让 MariaDB 工作。我都使用了如何从 Ubuntu 16.04 中强制删除 MySQL 和 MariaDB 中的说明,而不使用 `apt-get` 和 `dpkg`?

$ dpkg --list|grep -i mysql 

$ dpkg --list|grep -i mariadb

$ dpkg -remove --force-remove-reinstreq <package-list>

然后按照https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/中的说明安装 MySQL

现在运行良好,即使在重新启动后也是如此。不知道为什么这个解决方案没有得到更广泛的传播!

于 2019-02-16T07:38:23.297 回答