在Ubuntu中配置mysql,并允许外部访问数据库

在虚拟机中安装 MySQL 并允许外部访问,可以按照以下步骤操作:

1. 更新系统包

首先,确保你的系统是最新的,使用以下命令更新包列表:

bash 复制代码
sudo apt update
sudo apt upgrade

2. 安装 MySQL Server

安装 MySQL 服务:

bash 复制代码
sudo apt install mysql-server

安装完成后,MySQL 服务会自动启动。

3. 配置 MySQL 允许外部访问

MySQL 默认只允许本地访问。要允许外部访问,需要修改 MySQL 配置文件。

3.1 编辑配置文件

编辑 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,找到 bind-address 配置项:

bash 复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在文件中找到以下行:

ini 复制代码
bind-address = 127.0.0.1

将其修改为 0.0.0.0,表示允许所有 IP 地址访问:

ini 复制代码
bind-address = 0.0.0.0

保存文件并退出编辑器(在 nano 中按 Ctrl + X,然后按 Y 保存,按 Enter 退出)。

3.2 重新启动 MySQL 服务

修改配置后,需要重新启动 MySQL 服务,使更改生效:

bash 复制代码
sudo systemctl restart mysql

4. 配置防火墙

如果虚拟机使用的是 UFW(Uncomplicated Firewall)防火墙,需要允许 MySQL 端口(默认是 3306)通过防火墙:

bash 复制代码
sudo ufw allow 3306

然后重新加载防火墙规则:

bash 复制代码
sudo ufw reload

5. 创建用户并授权远程访问

MySQL 的 root 用户默认不能远程访问,因此需要创建一个新的 MySQL 用户并授权。

5.1 登录 MySQL

使用 root 用户登录 MySQL:

bash 复制代码
sudo mysql -u root -p

输入密码(weijie81)。

5.2 创建远程用户

假设你希望允许外部主机使用用户名 remote_user 和密码 remote_password 连接 MySQL,你可以运行以下命令:

sql 复制代码
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'remote_password';

这里的 @'%' 表示该用户可以从任何 IP 地址连接到 MySQL。

5.3 授权用户访问

授权 remote_user 对数据库的访问权限,假设是 ALL PRIVILEGES 权限:

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';

然后刷新权限:

sql 复制代码
FLUSH PRIVILEGES;
5.4 退出 MySQL
sql 复制代码
EXIT;

6. 配置虚拟机的网络设置

确保你的虚拟机网络设置为桥接模式(bridge mode),这样虚拟机才可以从外部网络直接访问。你可以在虚拟机管理工具(如 VirtualBox 或 VMware)中配置此项。

7. 通过外部访问 MySQL

现在,你可以从外部机器通过 MySQL 客户端连接到虚拟机上的 MySQL:

bash 复制代码
mysql -u remote_user -p -h <虚拟机IP地址> -P 3306

8. 测试连接

确保外部机器可以连接到虚拟机的 MySQL 服务。如果网络配置和防火墙设置正确,外部机器应该能够成功连接并执行查询。

这样,就完成了在虚拟机中安装 MySQL 并允许外部访问的配置。

相关推荐
码界奇点5 小时前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己5 小时前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河6 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac7 小时前
Redis 的相关文件作用
数据库·redis·缓存
鹧鸪云光伏与储能软件开发7 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
云的牧人8 小时前
Ubuntu 22 redis集群搭建
linux·运维·ubuntu
小猪写代码8 小时前
Ubuntu 文件权限管理
linux·ubuntu
2301_779503769 小时前
MySQL主从同步--主从复制进阶
数据库·mysql
beijingliushao9 小时前
58-正则表达式
数据库·python·mysql·正则表达式
诗句藏于尽头10 小时前
DJANGO后端服务启动报错及解决
数据库·笔记·django