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

79次阅读
没有评论

共计 1908 个字符,预计需要花费 5 分钟才能阅读完成。

本篇文章为大家展示了如何解决 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 本地和远程登录不上的问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计1908字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)