MySQL 访问被拒绝 (CentOS)

MySQL 访问被拒绝 (CentOS)

我已经在CentOS上安装了新的MySQL服务器,并使用命令启动了MySQL服务器服务。

 # /sbin/service mysqld start

我检查了该服务,它正在运行。

目前我登录的身份为root@localhost。我想更改 的密码root。为此我发出了命令:

/usr/bin/mysql_secure_installation

一旦我发出此命令,系统就会要求输入密码,我尝试按“回车”。这是行不通的。另外,尝试了我的 Linux root 密码,也不起作用。

当我尝试按 Enter 键时,我得到:

Error: Access denied for user 'root'@'localhost' (using password : NO)

当我尝试使用 Linux 盒子本地 root 密码时,我得到:

Error: Access denied for user 'root'@'localhost' (using password : YES)

除了本地计算机root密码之外,在安装过程中它没有要求我输入任何密码。我在这里缺少什么?我应该怎么做才能从 mysql-workbench 登录?谢谢。

答案1

编辑/etc/my.cnf并添加:

skip-grant-tables

然后重启MySQL服务并尝试登录

mysql

您也可以查看[官方手册]:

答案2

那里可能有一个root密码设置,通常你应该mysql_secure_installation以root身份运行,它会提示你输入mysql root密码,然后按回车键即可。

在您的情况下,似乎有一个 root 密码设置,您可以使用以下命令更改它

sudo mysqld_safe --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock --datadir=/var/lib/mysql --skip-grant-tables

这将让你启动 mysql,然后你就可以mysql -u root进入 mysql,然后更新 root 密码。

mysql> use mysql; 
mysql> update user set password=PASSWORD("yournewrootpasshere") where User='root';
mysql> flush privileges;
mysql> quit

--skip-grant-tablesoption 是使用的键,它不会提示输入密码。

之后,如果你正常重新启动 mysql,它就会出现,mysql_secure_installation如果你愿意,你甚至可以使用新的 root pass 再次运行。

由于这是全新安装,您还可以删除 mysql 软件包并重新安装。请记住还要删除数据库。

相关内容