十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了如何解决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本地和远程登录不上的问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。