问题描述: 在本地远程连接服务器中的数据库失败 解决方案: 1、 未开启Mysql远程登录账号 (1)创建新用户时可以直接使用如下命令 create user 'your_name'@'%' identified by 'your_p
(1)创建新用户时可以直接使用如下命令
create user 'your_name'@'%' identified by 'your_passWord';Query OK, 1 rows affected (0.06 sec)
此时新用户创建成功,mysql的user表中会添加一条新的记录,查看user表中的user和host可用如下命令:
use mysql; --切换到mysql数据库select host,user from user; --查看user表中的host和user+-----------+------------------+| host | user |+-----------+------------------+| % | your_name || localhost | debian-sys-maint || localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || localhost | root |+-----------+------------------+7 rows in set (0.00 sec)
%表示所有IP均可访问,也可以将%换成指定IP,localhost表示只能本地访问。
(2)修改已存在用户
update user set host = '%' where user = 'root'; --可以将root换成任意想修改的用户flush privileges; --刷新权限select host,user from user;+-----------+------------------+| host | user |+-----------+------------------+| % | your_name || localhost | debian-sys-maint || localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || % | root |+-----------+------------------+7 rows in set (0.00 sec)
此时就可以进行远程连接了;如果还是失败继续下面的操作。
如果没有开启3306端口,那么mysql只允许服务器本地访问,此时可以在你所购买服务器网站的控制台中打开相关服务器实例,在防火墙中添加规则,添加完成之后就可以远程连接了。若此时还不成功,继续之后的操作。
若添加完3306端口后连接不成功,此时可以在服务器命令行输入 ss -tlnp
lighthouse@VM-16-2-ubuntu:~$ ss -tlnpState Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* LISTEN 0 151 127.0.0.1:3306 *:* LISTEN 0 128 [::]:22 [::]:*
如果看到3306端口对应的local address是127.0.0.1,则表示只能本地访问,此时需要修改mysql配置文件,只需要找到配置文件后将其中的
bind-address = 127.0.0.1
或者
skip-networking
直接注释掉,然后重启mysql即可。
网上有的帖子说配置文件的路径为 /etc/mysql/my.cnf,但是我在其中没有找到上面的两句代码,之后我在 /etc/mysql/mysql.conf.d/mysqld.cnf 中找到了bind-address = 127.0.0.1,将其注释并重启mysql后成功实现远程连接。
配置文件的修改
cd /etc/mysql/mysql.conf.d # 切换到文件路径sudo vi mysqld.cnf # 进入编辑# 然后按一下i,进入insert模式,找到对应行将相关语句注释掉# 完成后按一下 esc ,再输入 :wq ,进行保存并退出
这个时候虽然远程连接成功了,但是新建的非root用户没有创建数据库等操作的权限,此时
show grants for your_name@%; -- 查看某个用户的权限grant all on *.* to 'your_name'@'%' [with grant option]; -- 授予your_name用户全部权限flush privileges; -- 刷新权限
其中,with grant option表示允许your_name向其他用户授予权限。
来源地址:https://blog.csdn.net/weixin_46356280/article/details/128365846
--结束END--
本文标题: 远程连接服务器mysql失败的解决方案
本文链接: https://lsjlt.com/news/442602.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0