运行 Mysql 第一次在 Centos 上访问被拒绝

Access denied while running Mysql for the first time on Centos

我刚刚使用 yum 在 CentOS 机器上第一次安装 Mysql。安装没有错误。然后我按照这些步骤操作:

$ sudo /sbin/service mysqld start --skip-grant-tables --skip-networking

$ sudo /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Enter current password for root (enter for none): 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Enter current password for root (enter for none): 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Enter current password for root (enter for none): 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Enter current password for root (enter for none): 

可以看出,即使在第一次安装后,登录数据库也出现问题。我什至尝试了 sudo 中的所有命令,但错误仍然存​​在。我什至不知道如何重新配置​​ MySQL。我也安装-删除了 mysql 3 次。

我该如何解决这个问题?

也许你已经在某个时候设置过了。你可以试试这个:

yum remove mysql-server
rm -rf /var/lib/mysql
yum install mysql-server
systemctl start mysqld.service
/usr/bin/mysql_secure_installation

反正我觉得这个问题应该在ServerFault里面

仅供在 MySQL 5.7 上遇到此问题的任何人使用。或更高。

MySQL v 5.7 或更高版本在安装后生成一个临时随机密码,并将其存储在位于 /var/log/mysqld.log 的 mysql 错误日志文件中 通过 MySQL Yum 存储库在 CentOS 7 上进行安装。

使用以下命令查看密码:

sudo grep 'temporary password' /var/log/mysqld.log

参考:MySQL 5.7.7 - Centos 7 el7 - Access denied

EDIT1

对于任何有不同错误日志文件的人,您可以使用下面@Drew 的回答 找到它。

  1. sudo mysql_secure_installation
  2. 当它要求输入密码时输入 pass
  3. 根据提示修改root密码

写入错误日志文件的临时 root 密码的视图

没有人能准确地完成命令

select @@log_error;

在不登录的情况下查找错误日志文件的位置(先有鸡还是先有蛋的困境)

但典型的位置是

C:\ProgramData\MySQL\MySQL Server 5.7\Data\

(对于 Windows。您必须取消隐藏 C:\ProgramData 目录)

mysql> select @@log_error;
+---------------------+
| @@log_error         |
+---------------------+
| /var/log/mysqld.log |
+---------------------+

(对于 Linux)

你误会了。因为你还没有设置密码。你应该只是 输入 none.

为了登录 MariaDB 以保护它,我们需要当前的 根用户的密码。如果您刚刚安装了 MariaDB,并且 你还没有设置root密码,密码将为空, 所以你应该在这里按回车键。