最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql常见问题_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:21:40
文档

mysql常见问题_MySQL

mysql常见问题_MySQL: 1. mysql忘记密码vim /etc/my.conf 文件在mysqld下添加skip-grant-tables,表示mysql在登录的时候不检查权限。登录mysql。直接运行mysql> use mysql;> update user set Password=password('root') wher
推荐度:
导读mysql常见问题_MySQL: 1. mysql忘记密码vim /etc/my.conf 文件在mysqld下添加skip-grant-tables,表示mysql在登录的时候不检查权限。登录mysql。直接运行mysql> use mysql;> update user set Password=password('root') wher


1. mysql忘记密码

vim /etc/my.conf 文件在mysqld下添加skip-grant-tables,表示mysql在登录的时候不检查权限。登录mysql。直接运行mysql
> use mysql;> update user set Password=password('root') where User='root'> flush privileges;> quit;
User表存储的是mysql的用户的权限和密码,mysql密码都是经过加密后存储的,所以我们的密码需要用password函数对其进行加密。删掉第一步添加的skip-grant-tables;重启mysql. service mysqld restart

2. mysql无法登录

首先检查mysql服务器是否开启,service mysqld status.如果开启了,但是仍然登录不进去,如登录账户是bob, 可以用root账户登录mysql.user表,查看bob账户的Host是否正确,如果在登录mysql服务器没有明确指定Host,默认是localhost,有时表中有127.0.0.1,但是没有localhost,这个时候尝试下mysql -h127.0.0.1 -ubob -p如果能够登录,那就每次登录的时候直接制定host登录,或者修改mysql.user表,添加root@localhost.
> use mysql;> insert into user(Host,User,Password) values('localhost','bob',password('1234'));> grant all on *.* to 'bob'@'localhost'
最后一句是赋予权限的意思,赋予bob所有的权限,其中all可以换成[update|delete|insert|create...]等权限,*.*表示任意数据库的任意表,用户可以自己根据需要筛选。最后是赋予权限给哪个用户。如果创建用户后执行mysql -u bob -p仍然无法登录, Access denied for user 'bob'@'localhost' (using password: YES),这时需要检查下是否有''@localhost账户存在,如果有执行
DROP USER ''@'localhost';
由于mysql如果匹配到多个账户时,有特定的顺序the most-specific Host values first,详细见http://stackoverflow.com/questions/10299148/mysql-error-1045-28000-access-denied-for-user-billlocalhost-using-passw

3. 执行grant时出现Access denied for user 'root'@'localhost' to database 'database'

root@localhost没有访问database的权限。我们执行
SELECT * FROM mysql.user WHERE User='root' and Host="localhost" /G
/G表示以键值对形式返回,这样看起来更方面,其中我们会发现
 Grant_priv: N
表示账户没有grant权限,所以我们就赋予grant权限给它。
> update user set Grant_priv='Y' where User='root' and Host='localhost';> flush privileges;
重新登录mysql。笔者直接flush privilege后执行grant命令,出错,但是重新登录后成功了。

文档

mysql常见问题_MySQL

mysql常见问题_MySQL: 1. mysql忘记密码vim /etc/my.conf 文件在mysqld下添加skip-grant-tables,表示mysql在登录的时候不检查权限。登录mysql。直接运行mysql> use mysql;> update user set Password=password('root') wher
推荐度:
标签: 错误 常见 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top