MYSQL服务器error 1045 (28000): Access denied for user错误
日期:2014-07-13 / 人气: / 来源:网络
最近新装了linux
mysql,用root用户空秘密登录不上;
用网上的方法,不能解决,后来发现我的user表是空的;
用下面方法解决,方法是在安全模式下插入root用户的秘密和用户名;
[root@localhost ~]#/etc/init.d/mysqld stop;关闭mysql服务
[root@localhost ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &;开启安全模式
[1] 4871
[root@localhost ~]# 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]节提供的密码>
至此 ,困惑多时的问题解决了!
用网上的方法,不能解决,后来发现我的user表是空的;
用下面方法解决,方法是在安全模式下插入root用户的秘密和用户名;
[root@localhost ~]#/etc/init.d/mysqld stop;关闭mysql服务
[root@localhost ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &;开启安全模式
[1] 4871
[root@localhost ~]# 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,云平台
作者:管理员
推荐内容 Recommended
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19
相关内容 Related
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19