在 ubuntu 18.04 中安装 mysql 时出现问题
Problems installing mysql in ubuntu 18.04
升级操作系统后我安装了mysql。但是root密码好像有问题。我在网上尝试了很多方法解决这个问题,到目前为止都没有成功。
systemctl状态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
Some new version not support above UPDATE query try to use below
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
我知道这个问题,在使用 16.04 时从未发生过。
而在18.04,我只是尝试用它来解决。
sudo mysql_secure_installation
在这种情况下,我可以设置我的密码,但它不起作用
而且该代码没有解决问题。
UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
标记为正确的答案在技术上是不正确的。 Ubuntu 18.04 使用套接字进行授权而不是密码!!
对我来说,登录非常简单:
sudo mysql -u root
我觉得这件事谁负责"feature"真的丢球了。应该有一条消息指出 Ubuntu 在尝试 运行 mysql 时不再使用密码。这是功能上的一个非常大的变化。
我尝试了大约 24 小时来消除这些错误并使用相同的数据库从 16.04 迁移到 18.04,但是我查看的所有网页中的 none 帮助了我。这是一个地狱。
尝试 systemctl status mysql.service 和 journalctl -xe 是一个死胡同 - 没有线索。
但是报错:
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
让我明白,18.04 上的 mysql-server 的结构有点不同。在安装过程中,我多次看到这样的文件:/etc/mysql/FROZEN。
只有我深入阅读才明白,我的错误来自不同版本的MySQL。它说我启动了降级(从 mysql-server-5.7 到 mysql-server-5.6),尽管我确定我没有这样做,因为我正在安装 mysql-服务器-5.7。
唯一对我有用的解决方案是:
手动删除 /var/lib/mysql 中的所有文件(和数据库)并重新安装 mysql-server 和 mysql-client
我将它们复制到不同的位置,但无法恢复它们。因此,问题出在数据库中,无法迁移。而且我也找不到 mysql-server-5.6 for Ubuntu 18.04(我读到,有人通过手动编译完成了)。幸运的是它是在测试服务器上制作的,所以没有丢失任何有价值的东西。但无论如何,下次我将 在 Ubuntu 版本迁移之前进行 MySQL 数据库备份并进行全新安装,而不是尝试保留现有数据库 .
我在使用 MySQL 和 MariaDB (ubuntu 18.04) 时也遇到了很多问题。我无法让 MariaDB 工作。我都在
使用说明
$ 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
现在运行良好,即使在重新启动后也是如此。不知道为什么这个解决方案没有得到更广泛的传播!
安装完成后:
sudo mysql
(是的,没有用户不通过)
您现在位于 mysql 控制台中:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
就是这样。您现在可以像往常一样下次进入控制台:
mysql -u root -p my_new_pass
升级操作系统后我安装了mysql。但是root密码好像有问题。我在网上尝试了很多方法解决这个问题,到目前为止都没有成功。
systemctl状态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
Some new version not support above UPDATE query try to use below
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
我知道这个问题,在使用 16.04 时从未发生过。 而在18.04,我只是尝试用它来解决。
sudo mysql_secure_installation
在这种情况下,我可以设置我的密码,但它不起作用
而且该代码没有解决问题。
UPDATE user SET password=PASSWORD('NEW_PASSWORD') WHERE user='root';
标记为正确的答案在技术上是不正确的。 Ubuntu 18.04 使用套接字进行授权而不是密码!!
对我来说,登录非常简单:
sudo mysql -u root
我觉得这件事谁负责"feature"真的丢球了。应该有一条消息指出 Ubuntu 在尝试 运行 mysql 时不再使用密码。这是功能上的一个非常大的变化。
我尝试了大约 24 小时来消除这些错误并使用相同的数据库从 16.04 迁移到 18.04,但是我查看的所有网页中的 none 帮助了我。这是一个地狱。
尝试 systemctl status mysql.service 和 journalctl -xe 是一个死胡同 - 没有线索。
但是报错:
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
让我明白,18.04 上的 mysql-server 的结构有点不同。在安装过程中,我多次看到这样的文件:/etc/mysql/FROZEN。
只有我深入阅读才明白,我的错误来自不同版本的MySQL。它说我启动了降级(从 mysql-server-5.7 到 mysql-server-5.6),尽管我确定我没有这样做,因为我正在安装 mysql-服务器-5.7。
唯一对我有用的解决方案是: 手动删除 /var/lib/mysql 中的所有文件(和数据库)并重新安装 mysql-server 和 mysql-client
我将它们复制到不同的位置,但无法恢复它们。因此,问题出在数据库中,无法迁移。而且我也找不到 mysql-server-5.6 for Ubuntu 18.04(我读到,有人通过手动编译完成了)。幸运的是它是在测试服务器上制作的,所以没有丢失任何有价值的东西。但无论如何,下次我将 在 Ubuntu 版本迁移之前进行 MySQL 数据库备份并进行全新安装,而不是尝试保留现有数据库 .
我在使用 MySQL 和 MariaDB (ubuntu 18.04) 时也遇到了很多问题。我无法让 MariaDB 工作。我都在
$ 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现在运行良好,即使在重新启动后也是如此。不知道为什么这个解决方案没有得到更广泛的传播!
安装完成后:
sudo mysql
(是的,没有用户不通过)
您现在位于 mysql 控制台中:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
就是这样。您现在可以像往常一样下次进入控制台:
mysql -u root -p my_new_pass