> Ubuntu >

ubuntu14.10下解决"ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)"

1. 问题描述

 我们假设你已在ubuntu下成功安装上了mysql数据库。
启动ubuntu14.10系统后, ctrl + alt + t打开终端
首先进入mysql的安装目录下启动mysql服务:



 
  1. xx@ubuntu:~$ cd /usr/local/mysql/  
  2. xx@ubuntu:/usr/local/mysql$ sudo ./support-files/mysql.server start  
  3. Starting MySQL  
  4. .. *   
  5. xx@ubuntu:/usr/local/mysql$   
启动mysql服务后, 接着我们进入mysql的shell, 即进入mysql的控制台,


 
  1. xx@ubuntu:/usr/local/mysql$ mysql -u root mysql  
  2. ERROR 1045 (28000): Access denied for user 'xx'@'localhost' (using password: NO)  
  3. xx@ubuntu:/usr/local/mysql$  
发现出现拒绝访问“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)”信息。
回到上面, 我们在刚刚安装完mysql数据库是未对mysql中的root用户进行密码设置的。下面我们通过修改mysql中的root用户密码进行解决问题。








2. 解决方法
	我们先把mysql的服务停止下来


 
  1. xx@ubuntu:/usr/local/mysql$ sudo ./support-files/mysql.server stop  
  2. Shutting down MySQL  
  3. .. *   
  4. xx@ubuntu:/usr/local/mysql$   
mysql服务停止后, 执行以下命令, 这里我们sudo -s切换到root管理员下执行命令,如下


 
  1. ./mysqld_safe --user=mysql --skip-grant-tables --skip-networking&   


 
  1. root@ubuntu:/usr/local/mysql# cd bin/  
  2. root@ubuntu:/usr/local/mysql/bin# ./mysqld_safe --user=mysql --skip-grant-tables --skip-networking&  
  3. [1] 5810  
  4. root@ubuntu:/usr/local/mysql/bin# 150104 19:01:43 mysqld_safe Logging to '/usr/local/mysql/data/ubuntu.err'.  
  5. 150104 19:01:43 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data  
  6. 150104 19:15:35 mysqld_safe mysqld from pid file /usr/local/mysql/data/ubuntu.pid ended  
当出现上面的信息时, 我们再ctrl + alt + t打开另一个终端窗口, 键入mysql -u root mysql进入mysql的shell下, 并可以修改mysql里root用户的密码
如下:


 
  1. xx@ubuntu:~$ mysql -u root mysql  
  2. Reading table information for completion of table and column names  
  3. You can turn off this feature to get a quicker startup with -A  
  4.   
  5. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  6. Your MySQL connection id is 1  
  7. Server version: 5.7.5-m15 MySQL Community Server (GPL)  
  8.   
  9. Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  
  10.   
  11. Oracle is a registered trademark of Oracle Corporation and/or its  
  12. affiliates. Other names may be trademarks of their respective  
  13. owners.  
  14.   
  15. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  16.   
  17. mysql> UPDATE user SET Password=PASSWORD('123456') whereUSER='root';  
  18. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'whereUSER='root'' at line 1  
  19. mysql> use mysql;  
  20. Database changed  
  21. mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';  
  22. Query OK, 1 row affected (0.22 sec)  
  23. Rows matched: 1  Changed: 1  Warnings: 0  
  24.   
  25. mysql> FLUSH PRIVILEGES;  
  26. Query OK, 0 rows affected (0.03 sec)  
  27.   
  28. mysql> exit  
  29. Bye  
  30. xx@ubuntu:~$ mysql -uroot -p123456  
  31. mysql: [Warning] Using a password on the command line interface can be insecure.  
  32. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  33. Your MySQL connection id is 2  
  34. Server version: 5.7.5-m15  
  35.   
  36. Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  
  37.   
  38. Oracle is a registered trademark of Oracle Corporation and/or its  
  39. affiliates. Other names may be trademarks of their respective  
  40. owners.  
  41.   
  42. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  43.   
  44. mysql> quit  
  45. Bye  
  46. xx@ubuntu:~$   


 
  1. mysql>use mysql;  
  2. mysql>UPDATE user SET password=PASSWORD('newpassword') WHERE user='root';  
  3. mysql>FLUSH PRIVILEGES;  
即上面三个命令就可完成mysql里root用户的密码修改。
3. 再次以新密码进入mysql的shell
如果mysql未启动, 请先启动mysql服务, 再来执行命令
启动mysql服务如下:


 
  1. xx@ubuntu:~$ cd /usr/local/mysql/  
  2. xx@ubuntu:/usr/local/mysql$ sudo ./support-files/mysql.server start  
  3. Starting MySQL  
  4. .. *   
  5. xx@ubuntu:/usr/local/mysql$  



 
  1. $ mysql -uroot -p123456  


 
  1. xx@ubuntu:~$ mysql -uroot -p123456  
  2. mysql: [Warning] Using a password on the command line interface can be insecure.  
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  4. Your MySQL connection id is 2  
  5. Server version: 5.7.5-m15 MySQL Community Server (GPL)  
  6.   
  7. Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  
  8.   
  9. Oracle is a registered trademark of Oracle Corporation and/or its  
  10. affiliates. Other names may be trademarks of their respective  
  11. owners.  
  12.   
  13. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  14.   
  15. mysql> quit  
  16. Bye  
  17. xx@ubuntu:~$ mysql -uroot -p123456  
  18. mysql: [Warning] Using a password on the command line interface can be insecure.  
  19. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  20. Your MySQL connection id is 3  
  21. Server version: 5.7.5-m15 MySQL Community Server (GPL)  
  22.   
  23. Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  
  24.   
  25. Oracle is a registered trademark of Oracle Corporation and/or its  
  26. affiliates. Other names may be trademarks of their respective  
  27. owners.  
  28.   
  29. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  30.   
  31. mysql>   
上面提示密码显示不安全信息, 我们也可以键入
 
  1. $ mysql -uroot -p  
然后再接入mysql用户root的新密码进行登录shell即可, 如下:

 
  1. xx@ubuntu:~$ mysql -uroot -p  
  2. Enter password:   
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  4. Your MySQL connection id is 4  
  5. Server version: 5.7.5-m15 MySQL Community Server (GPL)  
  6.   
  7. Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  
  8.   
  9. Oracle is a registered trademark of Oracle Corporation and/or its  
  10. affiliates. Other names may be trademarks of their respective  
  11. owners.  
  12.   
  13. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  14.   
  15. mysql>   

 






(责任编辑:IT)