如何解决mysql本地和远程登录不上的问题

网友投稿 316 2023-12-11

如何解决mysql本地和远程登录不上的问题

本篇文章为大家展示了如何解决mysql本地和远程登录不上的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

如何解决mysql本地和远程登录不上的问题

mysql本地登录不上的问题

本地登录不上,即忘记了密码,该如何解决呢?

首先,我们以不检查权限的方式启动mysql,如下:

1/usr/local/mysql/bin/mysqld --skip-grant-tables &

  然后,就可以直接登录了,如下:

  1 /usr/local/mysql/bin/mysql -u root

  最后,修改密码即可。

1update user set authentication_string=PASSWORD(dequan) where User=root;

  注意:在mysql5.7以及更高版本,使用authentication_string字段代替了Password字段。

mysql远程登录不上的问题

针对以检查权限的方式启动的mysql,客户端在以某用户来登录mysql时,mysql服务端会检验该用户以及该用户所在的ip是否有操作的权限。mysql可以基于用户ip、数据库、表、操作类型等维度来进行授权操作,授权的方式有修改mysql库里面的user表、执行mysql授权语句等。

1、基于修改user表来进行授权操作

如果某个ip登录不上,即在User表中没有对该ip进行授权。首先,我们看一些user表中的一些字段

  Host: 127.0.0.1

  User: root

  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

  ssl_type:

  ssl_cipher:

  x509_issuer:

  x509_subject:

  max_questions: 0

  max_updates: 0

max_connections: 0

  max_user_connections: 0

  plugin: mysql_native_password

authentication_string: *89E04A681364F578C8E900403166C192A1E8E2B6

  password_expired: N

  password_last_changed: 2017-08-04 10:27:44

password_lifetime: NULL

  account_locked: N

其中,Host为允许登录的主机名或是ip(如果为%,则代表任意ip或是主机),User登录用户,authentication_string为登录密码,*_priv为响应功能的权限,比如Select_priv为读的权限,Insert_priv写入的权限,Update_priv更新的权限,Delete_priv删除的权限。

所以,如果要允许root在某个远程主机ip1上面登录,则需要,改变对应登录用户的Host字段即可:

  update user set host = ip1 where user = root;

  //或者

update user set host = % where user = root;

最后更新一下权限即可

  FLUSH RIVILEGES

2、基于mysql授权语句来进行授权操作

当然,mysql也提供了相应的授权语句,如下:

grant all privileges on db.table to user@host identified by 密码 with grant option;

all privileges 代表授予所有的权限,当然我们也可以仅仅授予某些权限。最后在更新一下权限,即可

  FLUSH RIVILEGES

上述内容就是如何解决mysql本地和远程登录不上的问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SQL Server如何通过with as方法查询树型结构
下一篇:influxdb的原理和用法是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~