MYSQL服务器error 1045 (28000): Access denied for user错误

日期:2014-07-13 / 人气: / 来源:网络

最近新装了linux mysql,用root用户空秘密登录不上;
用网上的方法,不能解决,后来发现我的user表是空的;
用下面方法解决,方法是在安全模式下插入root用户的秘密和用户名;
[[email protected] ~]#/etc/init.d/mysqld stop;关闭mysql服务
[[email protected] ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &;开启安全模式
[1] 4871
[[email protected] ~]# mysql -u root mysql ;登录
mysql> select * from user;查询user表
Empty set (0.00 sec) mysql> show tables
    -> ;
---------------------------
| Tables_in_mysql           |
---------------------------
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
---------------------------
24 rows in set (0.00 sec)
mysql> insert into user (Password,User) values(PASSWORD('123'),'root');
Query OK, 1 row affected, 3 warnings (0.00 sec)
mysql>quit;
然后重启mysql服务就可以mysql -uroot -p123登录了
注意insert into user (Password,User) values('123','root');是不行的,因为秘密必须用PASSWORD() 函数加密。
这个用户没有任何权限,不能执行任何操作下面在安全模式下,修改权限:
insert into user values('localhost','root',PASSWORD("123'),'Y','Y','Y','Y','Y','Y','Y','Y',Y','Y','Y','Y','Y','Y','Y','Y',Y','Y','Y','Y','Y','Y','Y','Y',Y','Y','Y','Y','Y',100,100,100,100,100,100,100,100,100,100);
mysql->update user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y'  where User='root';
mysql->update user set  Reload_priv ='Y' ,Shutdown_priv ='Y' ,Process_priv ='Y' ,File_priv ='Y' ,Grant_priv ='Y' ,References_priv ='Y' ,Index_priv ='Y' ,Alter_priv ='Y' ,Show_db_priv ='Y' ,Super_priv ='Y' ,Create_tmp_table_priv ='Y' ,Lock_tables_priv ='Y' ,Execute_priv ='Y' ,Repl_slave_priv ='Y' ,Repl_client_priv ='Y' ,Create_view_priv ='Y' ,Show_view_priv ='Y' ,Create_routine_priv ='Y' ,Alter_routine_priv ='Y' ,Create_user_priv ='Y' ,Event_priv ='Y' ,Trigger_priv ='Y' ,Create_tablespace_priv ='Y' where User='root';
执行完毕重新登录就ok了;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下面是摘自网上的修改mysql 秘密的方法,方法3条件是初始存在秘密空的root用户:
方法一
# /etc/init.d/mysql stop
# mysqld_safe -- user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’ root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password : <输入新设的密码newpassword>
mysql>
方法二
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码 :
# mysql -udebian-sys-maint -p
Enter password : <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’ root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password : <输入新设的密码newpassword>
mysql>
方法三
这种方法我没有进行过测试 因为我的 root用户默认密码已经被我修改过了 那位有空测试一下 把结果告诉我 谢谢!
# mysql -uroot -p
Enter password : <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>
至此 困惑多时的问题解决了!

在百度bae云平台中使用JAVA连接MySQL数据库

BAE的数据库使用的mysql,还有phpmyadmin,怎么说呢,太像那种php空间了。不过都是免费的哈~~第一个问题就是连接数据的问题。做了一个简单的聊天室项目,打算放上去试试。BAE的数据库连接的用户名和密码需要从request请求中获取。只有数据库名是

MySQL,云平台

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部