linux下登录mysql报错“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO“)

  1. 用安全模式登录并设置密码(密码设置成你自己的,这里我设置成了123456):
    [root@localhost ~]# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
    [1] 13454
    [root@localhost ~]# 161010 13:40:23 mysqld_safe Logging to ‘/var/lib/mysql/localhost.localdomain.err’.
    161010 13:40:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

  2. 用root用户登录并选择mysql库:
    [root@localhost ~]# mysql -u root mysql
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.6.31-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

3.修改root用户的密码,注意第二个password要大写:
mysql> update mysql.user set password=PASSWORD(‘123456’) where User=’root’;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

  1. 退出mysql并重启mysql:
    mysql> quit
    Bye

[root@localhost ~]# /etc/init.d/mysql restart
Shutting down MySQL..161010 13:46:43 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended
SUCCESS!
Starting MySQL.. SUCCESS!
[1]+ Done mysqld_safe –user=mysql –skip-grant-tables –skip-networking
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.31-log

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

  1. 再次登录时执行任何sql会提示设置密码,再次设置一下刚才的密码:

mysql> SET PASSWORD = PASSWORD(‘123456’);
Query OK, 0 rows affected (0.01 sec)

  1. 这个时候一切就正常了:

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
4 rows in set (0.01 sec)

另外:
启动mysql: /etc/init.d/mysql start
重启mysql: /etc/init.d/mysql restart
停止mysql: /etc/init.d/mysql stop

mysql的配置文件是/etc/my.cnf。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值