Navicat远程连接ubuntu上mysql所踩过的坑

Navicat远程连接ubuntu上mysql所踩过的坑

装mysql就老套路几个命令行,其实连接本地也没遇到啥大问题,但是远程连接ubuntu上的mysql老遇到各种问题,我都佛了,以下为解决问题的过程中的记录。2019.1.24

出现问题之后网上就有一些回答说要把配置文件里的一行代码改了
原来

bind-address		= 127.0.0.1

现在(即确保允许所有的IP都能连接数据库)

bind-address		= 0.0.0.0

另外还要加上一行

skip-name-resolve

还要在mysql中授权,‘%’代表all host,这里的123456是密码,我有可能就是没有注意到这个密码然后后来一直把老密码当成新密码一直登不上。

grant all privileges on . to root@’%’ identified by ‘123456’;

刷新

flush privileges;

但是呢,这个过程中我又遇到一些问题,就是更改配置文件的时候因为是连接着所有的文件夹是root权限,所以还要更改一下权限,我这里直接把mysql下的所有权全部给了ubuntu(简单粗暴又省事儿),注意这里一定要用sudo

 sudo chown -R ubuntu /ect/mysql

改完权限就可以愉快的去改配置文件啦啦
我还遇到的一个问题就是我连接的时候密码的问题
从这张图可以看出来
输入命令行,从这张图片可以看出来,有两个root用户,一个的权限是localhost。一个是所有,我一开始有可能就是授权的时候把这两个用户的密码搞混了所以一直都没有连接上。
那该怎么办呢,我这个记性老忘密码唉唉唉,不如把两个密码都改成一样的一了百了。
于是我又开始百度了,发现有一种做法是这样的

update user set password=password('新密码') where user='root'; 

但是这样会有问题,会报错
ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
但是不慌,换一种

update user set authentication_string=password('新密码') where user='root'; 

over,最后终于从坑里爬出来啦啦,要落泪了

### 如何使用 Navicat 连接 Ubuntu 上的 MySQL 数据库 以下是关于如何配置并成功使用 Navicat 连接Ubuntu 中的 MySQL 数据库的具体方法: #### 1. 安装 MySQL 和相关依赖 在 Ubuntu 系统上,可以通过以下命令来安装 MySQL 的服务器端和客户端依赖包: ```bash $ sudo apt update $ sudo apt install -y mysql-server-8.0 $ sudo apt install libmysqlclient-dev ``` 上述操作会完成 MySQL 服务端和开发工具的安装[^2]。 #### 2. 修改 MySQL 配置文件以支持远程访问 默认情况下,MySQL 只允许本地连接。为了实现远程访问,需要编辑 MySQL 的配置文件 `mysqld.cnf` 并更改绑定地址: ```bash $ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到 `bind-address` 参数,并将其从 `127.0.0.1` 更改为 `0.0.0.0` 或者指定具体的 IP 地址以便接受外部请求: ```ini bind-address = 0.0.0.0 ``` 保存文件后重启 MySQL 服务使更改生效: ```bash $ sudo systemctl restart mysql.service ``` 此步骤确保 MySQL 能够监听来自网络中的其他设备发出的连接请求[^4]。 #### 3. 创建具有远程权限的新用户或授权现有账户 进入 MySQL 命令行界面创建新用户或者授予已有用户的远程访问权: ```sql CREATE USER 'new_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%'; FLUSH PRIVILEGES; ``` 这里 `'%'` 表示该用户可以从任何主机发起连接;如果仅限于特定IP,则替换为实际地址如 `'192.168.x.x'`[^1]。 #### 4. 开放防火墙设置 确认系统的防火墙规则已开放 MySQL 默认使用的 TCP/UDP 端口 (通常是 3306),可以运行如下指令开启对应端口号的数据传输通道: ```bash $ sudo ufw allow 3306/tcp $ sudo ufw reload ``` #### 5. 使用 Navicat 实现最终链接 启动 Navicat 应用程序,在新建连接对话框里选择 “MySQL”,填写目标机器的信息(包括但不限于 Hostname/IP Address, Port Number,默认值一般无需改动),输入刚才设定好的用户名密码即可尝试建立通信链路[^3]。 --- ### 注意事项 - 如果仍然遇到问题,请核查 SELinux/AppArmor 是否阻止了必要的功能。 - 对生产环境而言建议采用更安全的方式管理认证机制而非简单明文存储密钥信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值