在ubuntu 18.04中安装mysql的问题

时间:2018-05-02 10:21:29

标签: mysql installation lamp ubuntu-18.04

我已经安装了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设置密码,而且我重新安装了很多次。 也许这个问题已经过时了,但是我在网络上找到了很多方法却无法解决,所以期待得到帮助。

6 个答案:

答案 0 :(得分:7)

标记为正确的答案在技术上是不对的。 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时不再使用密码。这是功能上的一个非常大的变化。

答案 1 :(得分:1)

您必须在安全安装时更改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

答案 2 :(得分:1)

我意识到这个问题,当使用16.04时,它从未发生过。 在18.04,我只是试图用它来解决。

sudo mysql_secure_installation

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

该代码无法解决问题。

UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';

答案 3 :(得分:0)

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

尝试使用 systemctl状态mysql.service journalctl -xe -毫无用处。

但是错误:

  

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

使我理解,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数据库备份,而不是尝试保留现有数据库。

答案 4 :(得分:0)

我在MySQL和MariaDB(ubuntu 18.04)上也遇到很多问题。我无法让MariaDB工作。我俩都使用How to forcefully remove MySQL and MariaDB from Ubuntu 16.04, without `apt-get` and `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。

即使重启后也可以正常工作。不知道为什么这种解决方案没有得到广泛传播!

答案 5 :(得分:0)

安装后只需

  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