造成原因:
1、root密码不被ecs root帐号识别
2、root帐号里面的没有localhost 用户。。。
解决方法
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]字段中
最下面一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
保存文档并退出
2.接下来我们需要重启MySQL:
/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
3.重启之后输入mysql即可进入mysql。先修改密码到你的密码
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit
重新载入权限
FLUSH PRIVILEGES;
选择系统数据库mysql
use mysql;
查询系统表user中的用户
select host,user,authentication_string from user;
7.向root用户赋值权限
GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的新密码' WITH GRANT OPTION;
exit
并删除刚才跳过权限密码的东西
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]字段中
删除“skip-grant-tables”用来跳过密码验证的过程
done
不是20b了 3.92kb也像是唬人一样。。进入phpadmin发现都没权限看表。。我tm囊死我自己
该问题是因为root没有select权限引起的。
解决:赋予root权限
1.首先停止MySQL服务:service mysqld stop
2.加参数启动mysql:/usr/bin/mysqld_safe --skip-grant-tables &
然后就可以无任何限制的访问mysql了
3.root用户登陆系统:mysql -u root -p mysql
4.切换数据库:use mysql
5.显示所有的表:show tables;
这里就可以访问表了
6.查看user表中root用户的localhost权限:select * from user where user='root' and host='localhost'
7.在显示的列表中显示:root用户的localhost的权限都是'N',表示root用户本地登陆不具有权限
8.修改root用户的localhost权限:
update user set
`Select_priv` = 'Y',
`Insert_priv` = 'Y',
`Update_priv` = 'Y',
`Delete_priv` = 'Y',
`Create_priv` = 'Y',
`Drop_priv` = 'Y',
`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' and host='localhost';
-------在输入命令进行操作时报错,把 `Create_tablespace_priv` = 'Y'去掉解决 不报错可以不去
9.更新一下:flush privileges;
10.然后重新启动下mysql,可以解决问题了service mysqld star
real done