安装Mysql

如何在Ubuntu上安装和配置MySQL并允许远程访问

在本文中,我们将介绍如何在Ubuntu上安装和配置MySQL,并设置允许远程访问。我们将从安装MySQL开始,然后进行基本的安全配置,修改MySQL配置文件以允许远程连接,并创建可以远程访问的用户。

步骤1:更新包列表并安装MySQL服务器

首先,确保你的包列表是最新的:

1
bashsudo apt update

然后安装MySQL服务器:

1
bashsudo apt install mysql-server

如果你需要安装特定版本的MySQL(例如8.0),可以使用以下命令:

1
bashsudo apt install -y mysql-server-8.0

步骤2:检查MySQL服务状态并启用MySQL服务

检查MySQL服务是否正在运行:

1
bashsudo systemctl status mysql

确保MySQL服务在系统启动时自动启动:

1
bashsudo systemctl enable mysql

步骤3:运行安全安装脚本

MySQL提供了一个安全安装脚本,可以帮助你进行一些基本的安全配置。运行以下命令:

1
bashsudo mysql_secure_installation

在提示中,你将需要:

  • 选择密码规则
  • 删除匿名用户
  • 禁用远程root登录
  • 删除测试数据库和表

步骤4:修改MySQL配置文件以允许远程连接

打开MySQL配置文件mysqld.cnf,通常位于/etc/mysql/mysql.conf.d/目录中:

1
bashsudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到以下行:

1
Codebind-address = 127.0.0.1

将其注释掉或改为0.0.0.0,使MySQL监听所有网络接口:

1
2
Code# bind-address = 127.0.0.1
bind-address = 0.0.0.0

保存配置文件并退出编辑器。

步骤5:重启MySQL服务

重启MySQL服务以使更改生效:

1
bashsudo systemctl restart mysql

步骤6:创建可以远程访问的用户

登录到MySQL命令行:

1
bashmysql -u root -p

在MySQL提示符中运行以下命令,创建一个允许从任何IP地址连接的用户,并授予所有权限:

1
2
3
sqlCREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

解释:

  • GRANT ALL PRIVILEGES:授予用户所有权限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP等操作权限。
  • ON:授予权限的范围。*.*表示所有数据库和所有表。
  • TO:指定权限接收者。'yourusername'是用户名,'%'是主机名通配符,表示允许从任何IP地址连接的用户。
  • WITH GRANT OPTION:允许用户将他自己拥有的权限授予其他用户。

步骤7:配置防火墙

确保防火墙允许MySQL的默认端口3306的流量。如果使用的是UFW(Uncomplicated Firewall),可以运行以下命令:

1
2
bashsudo ufw allow 3306
sudo ufw reload

步骤8:验证远程连接

在远程机器上,使用MySQL客户端或其他工具连接到MySQL服务器:

1
bashmysql -u yourusername -p -h your_server_ip

其他操作

删除某些权限或用户

如果你想删除某些权限,或者从特定数据库中删除权限,可以使用REVOKE命令。例如:

1
sqlREVOKE ALL PRIVILEGES, GRANT OPTION FROM 'existinguser'@'%';

查看某个用户的当前权限

如果你想查看某个用户的当前权限,可以使用以下命令:

1
sqlSHOW GRANTS FOR 'existinguser'@'%';

通过这些步骤,你可以在Ubuntu上成功安装和配置MySQL,并设置允许远程访问