Ubuntu上安装MySQL 8并配置Navicat远程连接
1. 安装MySQL 8
sudo apt update
sudo apt install mysql-server -y
2. 启动MySQL服务
sudo systemctl start mysql
sudo systemctl enable mysql
3. 设置root密码
3.1 登录MySQL(默认无密码):
sudo mysql
3.2 修改root认证方式并设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
EXIT;
3.3 运行安全脚本(可选但推荐):
sudo mysql_secure_installation
- 按提示操作:设置密码强度、删除匿名用户、禁止远程root登录等。
4. 创建远程访问用户
4.1 登录MySQL:
mysql -u root -p
4.2 创建用户并授权(替换用户名
和密码
):
CREATE USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
FLUSH PRIVILEGES;
EXIT;
5. 允许MySQL远程连接
5.1 修改配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- 找到
bind-address = 127.0.0.1
,改为:bind-address = 0.0.0.0
- 保存并退出(
Ctrl+O
→Enter
→Ctrl+X
)。
6. 开放防火墙端口
sudo ufw allow 3306/tcp
sudo ufw reload
7. 重启MySQL服务
sudo systemctl restart mysql
8. 验证远程连接
- 在Navicat中使用以下信息连接:
- 主机/IP: Ubuntu服务器的IP地址
- 端口: 3306
- 用户名/密码: 步骤4中创建的用户信息
常见问题解决
-
认证插件错误:
- 确保用户使用
mysql_native_password
插件(步骤4.2已配置)。
- 确保用户使用
-
连接被拒绝:
- 检查防火墙规则:
sudo ufw status
- 确认MySQL监听所有IP:
sudo netstat -tuln | grep 3306
- 检查防火墙规则:
-
密码策略问题:
- 临时降低密码策略:
SET GLOBAL validate_password.policy = LOW;
- 临时降低密码策略: