Ubuntu下 MySQL的“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)”
今天闲来无事,在Ubuntu上掏鼓一下mysql。但尴尬的是,当我输入mysql -u root -p的时候,抛出了一个错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)。(Ubuntu很早之前就装了,mysql亦是如此),因此没有修改过它的原始密码。
网上查找了好久,各种说法均有!有的我操作了下,但貌似对centos有效,对Ubuntu则没有起到作用。还有的说,root的随机密码在/root/.mysql_secret中,但是我的系统中,根本没有/root/.mysql_secret文件。坑爹了去!!!后来FQ,在Stack Overflow上找到答案。总结起来,步骤如下:
第一,停止MySQL服务:(如果service mysql stop执行不成功,使用/etc/init.d/mysql restart即可----同理步骤三)
第二,/etc/mysql/下,打开my.cnf文件,向其中加入skip-name-resolve 和 skip-grant-tables,并保存;
第三, 启动MySQL服务:
第四,输入mysql -u root -p,进入mysql命令行界面;
第五,在命令行界面中,使用use mysql,进入对应的mysql数据库中;
第六,执行update操作,UPDATE user SET authentication_string = PASSWORD('新的密码') WHERE User = 'root';这样的话,密码修改成功。下次就可以用最新密码了,而不会出现上述的错误了。
比如我这里,设置的最新密码为:123456.下次直接用这个密码就ok了!
skip-name-resolve 禁止MySQL Server 对外部链接进行DNS解析,可以消除MySQL进行DNS解析的时间。但是如果开启了该选项,那么所有的远程主机连接授权都要使用IP地址,否则MySQL无法正常处理连接请求。
skip-grant-tables 系统对任何用户的访问都不做任何的访问控制,即在忘记密码的情况下,可以直接登录数据库
更改密码成功后,可以把这两项去掉的!
参考文献:
https://stackoverflow.com/questions/33326065/unable-to-access-mysql-after-it-automatically-generated-a-temporary-password/33332443#33332443
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
http://www.cnblogs.com/timelesszhuang/p/5156572.html
最新文章
- 《C++primer》v5 第7章 类 读书笔记 习题答案
- IOS Table中Cell的重用reuse机制分析
- 使用 IL 实现类型转换
- hibernate之自定义持久化实现
- QPainter就是手里的作图工具,只需要三洋东西:笔(颜色,宽度,样式),字体(写字),刷子(大面积作画),这里有三个典型例子
- SQL判断是否存在符合某条件的记录
- Python之路:爬虫之urllib库的基本使用和高级使用
- Servlet简单总结(一)
- jenkins针对不同的项目组对用户进行权限分配
- github第一次引用开源的库
- TensorFlow 图片resize方法
- win10 快速访问关闭
- ERP项目实施记录06
- oracle listagg和wm_concat函数
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十八):kafka0.10.1 内置性能测试API用法示例
- Git安装遇到的问题fatal: Could not read from remote repository.的解决办法
- 一则Gedit死机引起的错误之解决
- 利用solr实现商品的搜索功能
- Spring Boot 中yml配置文件
- 实例-QPSK的fpga实现