Linux 系统安装部署 MySQL 服务及远程连接配置
以 Ubuntu 18.04 为例,从零开始在 Linux 服务器上安装 MySQL 5.7、配置远程访问、创建远程用户,并排查常见连接问题。
目录
- 演示环境
- 步骤 1:更新包列表
- 步骤 2:安装 MySQL 服务器
- 步骤 3:启动 MySQL 服务
- 步骤 4:运行安全安装脚本
- 步骤 5:验证安装
- 步骤 6:配置 MySQL 以远程访问
- 步骤 7:验证远程连接
- 连接失败排查
演示环境
演示以 Ubuntu 18.04.3 LTS 为例,在服务器端安装 MySQL 5.7.42。 在一般的应用场景下,服务器可以是外部服务器也可以是本地虚拟机上的服务器。
服务器端:Linux 系统的 MySQL 服务器 客户端:Windows 系统下的数据库软件或安装了数据库服务的本地虚拟机、Linux 系统
步骤 1:更新包列表
首先,更新包列表以确保获取的是最新的软件包,在命令行中输入:
sudo apt-get update

步骤 2:安装 MySQL 服务器
安装 MySQL 服务器包,图示已安装好:
sudo apt-get install mysql-server

步骤 3:启动 MySQL 服务
查看服务状态,确保 MySQL 服务已启动:
/etc/init.d/mysql start # 启动
/etc/init.d/mysql stop # 关闭
/etc/init.d/mysql status # 查看状态
MySQL 服务正常运行:

命令行输入 mysql,进入后初始化本地 root 用户:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
将
your_password替换为你自己的密码。

步骤 4:运行安全安装脚本
根据个人情况选择,可跳过。
为了提高 MySQL 安装的安全性,运行 mysql_secure_installation 脚本。该脚本将引导你完成一些基本的安全配置,如设置 root 密码、删除匿名用户、删除测试数据库等:
sudo mysql_secure_installation
步骤 5:验证安装
登录 MySQL 确认安装是否成功:
sudo mysql -u root -p

步骤 6:配置 MySQL 以远程访问
若从其他计算机连接到你的 MySQL 服务器,配置 MySQL 以接受远程连接。编辑 MySQL 配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 行,原为 127.0.0.1,只用于本地通信。将其修改为 0.0.0.0,用于监听所有 IP:

重新启动 MySQL 服务:
sudo systemctl restart mysql
在服务器端 MySQL 中创建允许远程访问的用户,给予权限:
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
将
your_username和your_password替换为你的用户名和密码。
执行完成后可以在 SQL 界面输入如下语句,就能看到刚刚建立的远程用户:
SELECT user, host FROM mysql.user;

步骤 7:验证远程连接
首先获取服务器端 IP 地址:
-
本地虚拟机:在虚拟机上输入
ifconfig获取 IP 地址
-
外部服务器:在命令行中输入
curl ifconfig.me获取 IP 地址
在远程客户端输入如下命令,其中 your_server_ip 是 MySQL 服务器的 IP 地址,remote_user 是你创建的允许远程访问的用户名:
mysql -h your_server_ip -u remote_user -p

或者在 DataGrip、Navicat 等数据库可视化管理软件中进行连接:

连接失败排查
-
确保 MySQL 服务器处于开启状态

-
使用 ping 测试服务器可达性 — 如果不可达,检查服务器是否开启或者查看虚拟机上的网卡配置是否正确

-
检查 3306 端口是否被禁用或被防火墙阻止
netstat -tulnp | grep mysql
sudo ss -tuln
添加防火墙规则以允许端口 3306:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT sudo iptables-save -
使用 telnet 测试连接 — 排除以上问题后,使用 telnet 连接 MySQL 服务器 3306 端口。对于云服务器若连接不上,则查看服务器实例,在安全组详情页面检查入站规则,确保允许端口 3306 的入站流量。如果没有规则,添加一条允许端口 3306 的 TCP 流量。
telnet your-ip-address 3306