主机Navicat访问远程Ubuntu中MySQL

先简单说一下,mysql-server 安装后可以通过默认用户密码登录(mysql本身提供,在/etc/mysql/demian.cnf下查看,如下图) 或者 root用户登录(默认没有密码),

你自己的用户(普通用户)是无法登陆的,验证:终端输入:mysql -u 你的用户 -p, 会报错,原因是你的用户不在 mysql 用户组中,无法访问mysql服务。

因此,远程登录必须用mysql用户组中的用户登录,也就是默认下可以使用 root 用户登录,而用 ‘你的用户’ 无法登录。所以需要把 你的用户 放入mysql用户组中。

先说选择你的用户远程登录

其实就是创建用户,只不过创建一个跟你的用户同名的用户(你要创建不同名的也可,但是何必搞个新的),再直接一点就是把 你的用户 添加到mysql的用户组(添加到user表中),

1.先确认配置文件绑定端口号注释掉:

sudo vim /etc/mysql/mysql.conf.d/ /mysqld.cnf 

文件打开后将    bind-address  = 127.0.0.1    这一行注释掉,此行不注释只能本机登录。

2.登录mysql, 可以用上述默认用户登录,也可root用户登录

sudo mysql -u root -p

3.进入mysql后创建一个用户(假设你的用户是hello,那就也创建一个hello用户吧!)

create user 'hello'@'%' identified by '123456';

这里%表示所有远程主机能登录,不能是localhost。密码自定。

4.然后给此用户赋予权限

grant all privileges on *.* to 'hello'@'%';
flush privileges;

赋予权限这个语句特别说明,后面如参数identified by '密码' with option之类的在高版本不支持了,新的高版本参数不一样,你必须确认你的版本才去用,否则报参数错误。我这条8.0版本可用

5.退出mysql并重启mysql。

exit

sudo service mysql restart

结果在物理机Navicat上常规登录如下,直接通过你的数据库用户名密码登录,且在你的云机输入 mysql -u 你的用户 -p  密码回车已经不报错了!

再说一下用root用户远程登录

其实本质和上面一样,只不过root用户默认存在于mysql用户组中,无需创建。

但是需要要改一个host字段为%,表示任一主机可远程连接。默认为localhost

而且root用户默认无密码,必须设置,否则远程无法通过root用户空密码登录(普通用户空密码可以登陆,比如上面hello用户可以不设置密码而空密码登录)

解决如下:

1.同样你得确认配置文件绑定本机端口号注释掉,方法如上。

2.设置host为%

进入mysql后执行

use mysql;
update user set host = '%' where user = 'root';

可以 select user,host from user;  看到root对应的host值已经更改为%

2.修改root用户密码

alter user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

退出重启

结果在物理机Navicat上常规登录如下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值