bash
sudo systemctl enable mysql
sudo systemctl start mysql
检查状态:
bash
sudo systemctl status mysql
✅ 六、配置远程访问(可选)
如果你需要从其他机器连接该数据库,请进行以下配置。
1、编辑 MySQL 配置文件
bash
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 `bind-address` 行,修改为:
ini
bind-address = 0.0.0.0
❗注意:`0.0.0.0` 表示监听所有网络接口,请确保防火墙已限制访问,否则有安全风险!
保存退出。
2、重启 MySQL 服务
bash
sudo systemctl restart mysql
✅ 七、创建用户并授权远程访问(推荐方式)
登录 MySQL:
bash
mysql -u root -p
执行以下 SQL 命令(替换 `your_user` 和 `your_password`):
sql
创建新用户(允许从任意主机连接)
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
授予数据库权限(例如对所有数据库的全部权限)
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
刷新权限
FLUSH PRIVILEGES;
🔐 更安全做法:限制用户只访问特定数据库:
sql
CREATE USER 'app_user'@'%' IDENTIFIED BY 'securepass';
GRANT ALL ON mydb.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
✅ 八、配置防火墙(UFW)
如果启用防火墙,开放 MySQL 默认端口 `3306`:
bash
sudo ufw allow 3306/tcp
sudo ufw reload
✅ 建议:不要将 3306 暴露到公网,可用 SSH 隧道或内网访问。
✅ 九、验证安装
在本地机器上测试连接(假设服务器 IP 为 `192.168.1.100`):
bash
mysql -h 192.168.1.100 -u your_user -p
✅ 十、常见问题排查
| 问题 | 解决方案 |
| `Access denied for user` | 检查用户名、密码、是否允许远程连接 |
| `Can't connect to MySQL server` | 检查 `bind-address`、防火墙、MySQL 是否运行 |
| `ERROR 2002 (HY000): Can't connect to local MySQL server` | 检查 `systemctl status mysql` |