目录
1. 安装MySQL
2. 安全配置MySQL
3. 配置MySQL远程登录
3.1. 允许远程连接
3.2. 重启MySQL服务
3.3. 为用户分配远程访问权限
进入MySQL后,执行以下命令:
3.4. 创建新用户
3.5. 授予权限
3.6. 刷新权限
3.7. 退出 MySQL 控制台
4. 配置防火墙
5. 测试远程连接
在Ubuntu上创建MySQL并实现远程登录的步骤如下:
1. 安装MySQL
打开终端,执行以下命令来更新软件包和安装MySQL:
sudo apt update
sudo apt install mysql-server
安装完成后,MySQL服务会自动启动。可以使用以下命令检查MySQL服务状态:
sudo systemctl status mysql
2. 安全配置MySQL
运行MySQL的安全脚本来移除默认的设置(如匿名用户、测试数据库等),并为root
用户设置密码:
sudo mysql_secure_installation
根据提示进行选择,建议:
- 设置
root
用户密码 - 移除匿名用户
- 禁止root远程登录(可以根据需要允许)
- 删除测试数据库
- 重新加载权限表
3. 配置MySQL远程登录
3.1. 允许远程连接
打开MySQL配置文件并查找bind-address
参数:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到如下行:
bind-address = 127.0.0.1
将127.0.0.1
改为0.0.0.0
,以允许所有IP地址连接:
bind-address = 0.0.0.0
保存文件并退出编辑器。
3.2. 重启MySQL服务
修改完成后,重启MySQL服务以应用更改:
sudo systemctl restart mysql
3.3. 为用户分配远程访问权限
登录MySQL数据库并为需要远程访问的用户分配权限。例如,为root
用户在任意主机上允许访问:
sudo mysql -u root -p
第一次进入可以设置密码,密码格式是之前 安全设置 选择的 (例如:12345678)
进入MySQL后,执行以下命令:
3.4. 创建新用户
一旦登录到 MySQL 控制台,执行以下命令创建一个新的 MySQL 用户并设置密码:
CREATE USER 'new_user'@'%' IDENTIFIED BY 'new_password';
- 替换
new_user
为你想要的用户名。 - 替换
new_password
为你想要的密码。
3.5. 授予权限
为新用户授予对所有数据库的权限:
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%' WITH GRANT OPTION;
这将允许新用户从任何地方(%
代表任意主机)连接到MySQL,并拥有所有权限。
3.6. 刷新权限
运行以下命令来刷新权限表,使更改生效:
FLUSH PRIVILEGES;
3.7. 退出 MySQL 控制台
退出 MySQL:
EXIT;
4. 配置防火墙
为了确保远程访问MySQL,需要开放MySQL默认的3306端口:
sudo ufw allow 3306
5. 测试远程连接
现在你可以尝试从远程主机连接到MySQL服务器了。使用以下命令:
mysql -u username -h server_ip -p
替换username
为你创建的MySQL用户名,server_ip
为你Ubuntu服务器的IP地址。
这样,MySQL应该可以正常远程访问了。