新的MYSQL安装,用户'root'拒绝访问

use*_*018 3 mysql lamp ubuntu-13.10

我有一个旧灯泡服务器,我想移动到一台新机器,所以我做了一个mysqldump,在一台新机器上安装了Ubuntu Server 13.10,在安装过程中安装了灯泡,然后从旧灯泡服务器导入了旧的mysql数据库.令我惊讶的是,在mysql导入后,一切似乎都很完美.

然后我尝试每小时将一个cron作业设置为mysqldump所有数据库到备份服务器.为了确保它有效,我尝试在新服务器上手动运行mysqldump,以确保它工作(而不是等待cron作业运行).无论如何,mysqldump函数不起作用,由于某种原因,现在我根本无法访问mysql.我试过了:

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

并获取"ERROR 1045(28000):拒绝用户'root'@'localhost'(使用密码:YES)"

此外,我的PHP脚本也不能访问mysql数据库.所以我被锁定了.

我不知道为什么运行mysqldump(或crontab)会把我锁定,所以我认为它与从我的旧灯服务器(运行旧版本的mysql)导入所有数据库有关.

我大部分时间仍然是一个Linux新手所以任何帮助将不胜感激!

use*_*018 9

我仍然不知道为什么我被锁定了,但为了解决这个问题,我必须重置mysql root密码,我按照本网站上的说明进行了操作(但是我为Ubuntu 13.10修改了它们): https:// help .ubuntu.com /社区/ MysqlPasswordReset

使用以下命令停止mysql守护程序进程:

sudo pkill mysqld
Run Code Online (Sandbox Code Playgroud)

使用带有此命令的--skip-grant-tables选项启动mysqld守护程序进程

sudo /usr/sbin/mysqld --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)

使用此命令启动mysql客户端进程

mysql -u root
Run Code Online (Sandbox Code Playgroud)

从mysql提示符执行此命令以便能够更改任何密码

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

然后重置/更新您的密码

SET PASSWORD FOR root@'localhost' = PASSWORD('password');
Run Code Online (Sandbox Code Playgroud)

如果你有一个可以从任何地方连接的mysql root帐户,你还应该这样做:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)

收到指示查询成功的消息(一个或多个受影响的行)后,刷新权限:

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

然后停止mysqld进程并以经典方式重新启动它:

sudo pkill mysqld
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

其中一些步骤可能是不必要的,但这是我从旧灯泡服务器导入mysqldump文件后在Ubuntu Server 13.10上成功重置mysql root用户密码的方法


小智 5

我的问题是我只能从以root用户身份登录的CLI访问mysql。


小智 5

杀死 mysqld 进程后,您需要创建一个 /var/run/mysqld 目录,供 MySQL 进程用来存储和访问套接字文件:

$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)

很多答案中都缺少这一点。然后,您可以使用 --skip-grant-tables 选项成功启动 mysql 进程。您可以运行以下命令:

$ jobs
Run Code Online (Sandbox Code Playgroud)

在继续之前确认进程正在运行。

N/B 这是在Ubuntu 18.04 上