我升级操作系统后安装了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设置密码,我已经重新安装了很多次。也许这个问题已经过时了,但我在网络上找到了很多方法却无法解决,所以期待有所帮助。
您必须在安全安装时更改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
标记为正确的答案在技术上是不对的。 Ubuntu 18.04使用套接字进行授权而不是密码!!
(Qazxswpoi)
对我来说,登录简单如下:
https://websiteforstudents.com/mariadb-installed-without-password-prompts-for-root-on-ubuntu-17-10-18-04-beta/
我觉得无论谁对这个“功能”负责都真的丢球了。应该有一条消息说明Ubuntu在尝试运行mysql时不再使用密码。这是功能上的一个非常大的变化。
我知道这个问题,当使用16.04它从未发生过。在18.04,我只是试图用它来解决。
sudo mysql -u root
在这种情况下,我可以设置我的密码,但它不起作用
而且该代码无法解决问题。
sudo mysql_secure_installation
安装后只需:
UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
(是的,没有用户没有通过)sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
我尝试了大约24小时来摆脱这些错误,并使用相同的数据库从16.04迁移到18.04,但我看到的所有网页都没有帮助我。真是个地狱。
尝试systemctl状态mysql.service和journalctl -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数据库备份并进行全新安装,而不是试图保留现有数据库。
MySQL和MariaDB(ubuntu 18.04)也遇到了很多问题。我无法让MariaDB工作。我都在mysql -u root -p my_new_pass
上使用说明
How to forcefully remove MySQL and MariaDB from Ubuntu 16.04, without `apt-get` and `dpkg`?
和
$ dpkg --list|grep -i mysql
然后安装MySQL,如$ dpkg --list|grep -i mariadb
$ dpkg -remove --force-remove-reinstreq <package-list>
所述
现在运行良好,即使重启后也是如此。不知道为什么这个解决方案没有更广泛的传播!