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

时间:2015-05-19 19:52:26

标签: mysql centos root

我刚刚使用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。我已经安装了3次删除mysql。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:30)

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

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

使用以下命令查看密码:

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

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

<强> EDIT1

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

答案 1 :(得分:3)

写入错误日志文件

的临时root密码的视觉效果

enter image description here

不是那个人可以完全甩掉命令

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)

答案 2 :(得分:1)

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

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

无论如何,我认为这个问题应该在ServerFault中。

答案 3 :(得分:0)

你误解了。因为你还没有设置密码。你应该只是 输入无。

为了登录MariaDB以保护它,我们需要当前的 root用户的密码。如果你刚刚安装了MariaDB,那么 你还没有设置root密码,密码是空白的, 所以你应该按回车。

答案 4 :(得分:-1)

  1. sudo mysql_secure_installation
  2. 当它要求输入密码类型pass
  3. 按照提示更改root密码