安装命令
apt-get update
apt-get install mysql-server
安装完成后,MySQL服务将自动启动。要验证MySQL服务器正在运行,请输入:
systemctl status mysql

修改mysql的密码验证方式
你可以通过查询 plugin 字段来检查认证方式:
SELECT user, host, plugin FROM mysql.user WHERE user='root';

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
修改密码,并刷新权限

重启mysql服务器
sudo systemctl restart mysql
极少数情况下会出现 MySQL 配置的 socket 不在 /tmp/mysql.sock,但 TCP 是通的,可以直接绕开 socket:
mysql -uroot -p123456 -h 127.0.0.1
如果这样能连上,说明 MySQL 是跑着的,只是客户端默认找的 socket 路径不对。
主机连接Mysql
通过navicate连接服务器的数据库。

第一步:MySQL 是否在监听 0.0.0.0(而不是只监听本机)
sudo ss -tulnp | grep 3306
看 Local Address 那一列:
如果是 127.0.0.1:3306 或 localhost:3306
👉 只能本机访问,外网(包括你 Navicat)连不到
如果是 0.0.0.0:3306 或 服务器内网 IP xxx.xxx.xxx.xxx:3306
👉 说明 MySQL 已经对外监听了,这一步 OK

如果现在只监听在 127.0.0.1,修改配置,常见在 Ubuntu 上配置文件是:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
有些系统是 /etc/mysql/my.cnf 或 /etc/my.cnf
找到类似:
bind-address = 127.0.0.1
# 或
bind-address = localhost
改成:
bind-address = 0.0.0.0
这一行最好注释掉:skip-networking
保存后重启 MySQL:
sudo systemctl restart mysql

第二步:防火墙是否放行 3306 端口
Ubuntu 常见:
sudo ufw status
如果启用了 UFW,而且没有 3306 的规则,就加一条:
# 如果只让你自己的电脑(假设你本机 IP 是 1.2.3.4)访问,安全一些:
sudo ufw allow from 1.2.3.4 to any port 3306 proto tcp
# 或者简单粗暴点:对所有 IP 开放 3306(不太推荐)
sudo ufw allow 3306/tcp
然后:
sudo ufw reload
sudo ufw status
云服务器控制台安全组(很关键)
同时如果你用的是云服务器(例如腾讯云、阿里云等),还要在控制台里:
- 找到这台机器的「安全组」规则
- 新增一条 入站规则:
- 协议:TCP
- 端口:3306(或你实际的 MySQL 端口)
- 来源:你当前公网 IP /
0.0.0.0/0(测试用)
不开放安全组的话,Navicat 永远连不上。

第三步:确认 MySQL 里有给你 Navicat 用的远程账号
即便端口通了,如果你的 MySQL 只允许 root@localhost 登录,外网也连不上。
在服务器上登录 MySQL(本机):
mysql -u root -p
在 MySQL 里执行(不要粘贴密码示例,换成你自己的):
-- 1. 创建一个远程用户(示例:账号 meduser,密码 StrongPass123! 自己换)
CREATE USER 'meduser'@'%' IDENTIFIED BY 'StrongPass123!';
-- 2. 给他对 meditation 数据库的权限(按你实际数据库名改)
GRANT ALL PRIVILEGES ON meditation.* TO 'meduser'@'%';
-- 3. 刷新权限
FLUSH PRIVILEGES;
%表示允许从任意 IP 连接,你也可以改成'meduser'@'你本机IP'更安全。
然后在 Navicat 里这样配置:
- 主机:
IP地址 - 端口:
3306 - 用户名:
meduser - 密码:
StrongPass123! - 连接方式:
TCP/IP
点击测试连接。



