linux下 root 登录 MySQL 报错的问题

最近在centOS 7上,通过yum安装了mysql,安装成功后,使用root登录,出现了如下报错:

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

mysql版本为:Ver 14.14 Distrib 5.7.10, for Linux(X86_64) using EditLine wrapper

然而实际上并没有进行过root密码设置(不知道是不是安装过程有被忽略的地方?)。

对此就各种寻找答案,大致有下面一些情况:

有说root的随机密码位于/root/.mysql_secret中,但是我根本没有/root/.mysql_secret文件。有文章表示

> ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using
> password: NO) :表示没有生成root的临时密码
>
> ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using
> password: YES) :表示生成了root的临时密码。

有些资料说root的默认密码为空,经过确认那是以前的老版本,Mysql 5.6及以后版本出处于安全考虑,root密码已经不为空了。
最终找到对我来说有用的解决方案。

产生原因:

Now that the password MySQL had generated is expired, the problem is reduced to getting this password to work again (1) or generate a new one (2). This can be accomplished by running MySQL with the skip-grant-tables option which would make it ignore the access rights:

解决方法:

代码如下:

Stop your MySQL server.
Add skip-grant-tables at the end of the [mysqld] section of my.cnf file and save it.
Start MySQL server.
In terminal, typemysql -u root -pto get into MySQL command prompt.
In the command prompt, typeUSE mysql;to get into the mysql database where it keeps database users.
Type
UPDATE user SET password_expired = 'N' WHERE User = 'root';
to let MySQL know the password is not expired (1) or
UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

附上链接:Unable to access MySQL after it automatically generated a temporary password

发布出来,供大家参考。

(0)

相关推荐

  • linux mysql 报错:MYSQL:The server quit without updating PID file

    1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限解决方法 :给予权限,执行 "chown -R mysql:mysql /var/data" "chmod -R 755 /usr/local/mysql/data"  然后重新启动mysqld! 2.可能进程里已经存在mysql进程解决方法:用命令"ps -ef|grep mysqld"查看是否有mysqld进程,如果有使用"kill -9  进

  • Linux 初始化MySQL 数据库报错解决办法

     Linux 初始化MySQL 数据库报错解决办法 在Linux   CentOS 5 中安装完MySQL (server.devel)之后进行初始化 service mysqld  start ,执行命令报错: Neither host 'localhost.localdomain' nor 'localhost' could be looked up with /usr/bin/resolveip Please configure the 'hostname' command to retu

  • linux 环境 mysql写入中文报错

    查看字符集编码 MySQL> show variables like 'character%'; 修改字符集编码,方法如下 mysql> set character_set_database=utf8; 注意,有可能在修改之后仍然在写入中文是报错 1>重新启动mysql 2>将原有的库删除,重新建库 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

  • linux下 root 登录 MySQL 报错的问题

    最近在centOS 7上,通过yum安装了mysql,安装成功后,使用root登录,出现了如下报错: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) mysql版本为:Ver 14.14 Distrib 5.7.10, for Linux(X86_64) using EditLine wrapper 然而实际上并没有进行过root密码设置(不知道是不是安装过程有被忽略的地方?).

  • centos下编译安装mysql报错解决方案

    今天在centos6.2下面源码编译安装mysql的时,在编译mysql的时候报了一个蛋蛋的错误: 复制代码 代码如下: [root@vps870 mysql-5.5.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ > -DDEFAULT_CHARSET=gbk \ > -DDEFAULT_COLLATION=gbk_chinese_ci \ > -

  • 一次docker登录mysql报错问题的实战记录

    目录 起因 解决方法 附:docker下进入mysql命令行 总结 起因 最近想再重温重温MySQL,于是就打开VMware登上了我的小破机.想着之前在docker上面已经装过MySQL了,就尝试着登录了一下, 进入mysql服务 docker exec -it mysql bash 输入命令 mysql -uroot -p 输入密码 想象的Welcome to the MySQL没有到来,反而是 ???密码明明没有错,登不上去..... 之后打开Navicat,测试远程登录,

  • 解决navicat远程连接mysql报错10038的问题

    navicat远程连接mysql报错10038一般由以下两个原因: 一:本地防火墙问题 在本地安装了mysql.navicat并打开了mysql服务的情况下,来设置防火墙. 首先右击或者点击入站规则,找到新建规则,点击. 点击端口. 在特定本地端口中填入3306. 一直点击下一步. 这里可以给一个好分别的名称即可. 之前再尝试连接即可,若仍然不可以,可能是服务器方面的问题. 二:服务器3306端口未打开 首先需要在安全组开放端口. 我这里使用的是阿里云服务器.首先需要进入云服务器,找到安全组.

  • nginx 下安装配置 phpadmin报错的解决方法

    如下所示: 系统版本:centos7.0 64位 NGINX版本:nginx version: nginx/1.9.8 PHP版本:PHP 7.0.0 (cli) (built: Dec  1 2015 17:53:27) ( NTS ) mysql版本:mysqld  Ver 5.7.10 phpmyadmin版本:4.5.2-all-languages 部署完phpmyadmin,访问主页报错: Error during session start; please check your PH

  • MySQL报错1040'Too many connections'的原因以及解决方案

    目录 报错原因: 解决办法 总结 MySQL 报错1040 ‘Too many connections’ 报错原因: 实际连接数超过了mysql 允许的最大连接数,访问量过高,MySQL服务器抗不住. 解决办法 1.修改max_connections,如果这个值已经很大,2.这个时候就要考虑增加从服务器分散读压力: Windows 找到mysql.ini(Linux 修改/etc/my.cnf文件,在[mysqld]中新增max_connections=N).修改允许最大连接数max_conne

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • Navicat连接mysql报错2003(10060)的解决方法

    目录 发现报错 1.MySQL的服务没有启动,这个是最常见的问题原因 2.MySQL没有远程权限 3.防火墙拦截 总结 发现报错 对于Navicat连接数据库mysql 出现报错2003(10060),如下所示报错 经过查询总结以上出现问题的主要解决方法三种: 1.MySQL的服务没有启动,这个是最常见的问题原因 WIN+R,输入services.msc打开服务管理器,找到mysql 如果显示mysql为禁用状态,可以右键启动服务,然后在Navicat重新测试连接 2.MySQL没有远程权限 1

  • linux下python3连接mysql数据库问题

    python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb 1.安装pymysql pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql pip install pymysql3 2.使用pymysql 在我们需要使用数据库的.py文件开头添加下面两行 import pymysql pymysql.install_as_MySQLdb() 第一行是引入pymysq

  • Linux下root初始密码设置方法

    Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定. 以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码. 给root用户设置密码的具体步骤: 1. 打开一个terminal,然后输入下面的命令 sudo passwd root 回车后会出现让你输入原始密码,新密码和确认密码: [sudo] password for you: ---> 输入你的密码(你现在这个用户的密码) Enter new UNIX pass

随机推荐