社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

在Ubuntu上安装和配置MySQL保姆级教程

AI科技大本营 • 1 年前 • 177 次点击  
MySQL 是最常见的开源关系数据库管理系统 (RDBMS) 之一,它基于结构化查询语言 (SQL),这是一种用于管理数据库中保存的数据的编程语言。

要求

你将需要在系统上拥有提升的权限 (root)。你可以通过执行以下命令来执行此操作。

sudo su

安装MySQL

本文中选择的 Ubuntu 版本是 Ubuntu 20.04 LTS,使用 MySQL Linux 版本是 5.7 版做示例。要开始安装,可按照以下步骤操作:

步骤一

确保系统中的所有软件包和存储库都是最新的,可以通过运行以下命令来执行此操作:

sudo apt update
更新系统包

步骤二

现在,我们将通过 apt 包管理器安装 MySQL,执行下面的命令。

sudo apt install mysql-server
安装 MySQL 数据库

步骤三

安装成功后,mysql-service 应该会自动启动。你可以通过执行以下命令来确认。

sudo systemctl mysql-server

你应该得到与下图类似的输出。

MySQL 状态

服务未运行时,可执行以下命令:

sudo /etc/init.d/mysql start

验证MySQL-Server

你可以通过运行以下命令来验证安装结果,该命令将输出系统中所安装的 MySQL 版本和发行版。

mysql --version
MySQL 版本分布

保护MySQL-Server

既然 MySQL Server 安装成功了,我们则需要设置一些参数来保证以后配置的服务器和数据库的安全。

一般情况下,MySQL Server 包安装完成后,mysql-secure-installation 实用程序将自动启动。但是,如果你没有自动启动,可执行以下命令:

sudo mysql_secure_installation

这将会一个提示,询问是否验证密码插件。它通过检查用户密码的强度来增强 MySQL Server 的安全性,允许用户仅设置强密码。按 Y 接受 VALIDATION 或按 RETURN 键跳过。

接受密码验证插件

接下来,会看到设置 root 密码的提示。输入密码并按回车键。注意,为了安全,在控制台中不会显示键入的任何内容。

输入 MySQL root密码

接下来,会看到一个提示,询问你是否删除所有匿名用户,输入 Y 表示是。

移除匿名用户

以root身份登录并调整用户身份验证

MySQL Server 带有一个客户端实用程序,可以从 Linux 终端访问数据库并与之交互。

通常,未做任何配置时,在 Ubuntu 上全新安装 MySQL 后,访问服务器的用户将使用 auth_socket 插件进行身份验证。

auth_socket 的使用会阻止服务器使用密码对用户进行身份验证。它不仅会引发安全问题,而且还会使用户无法借助外部程序(如 phpMyAdmin)访问数据库。因此我们需要将身份验证方法从 auth_socket 更改为使用 mysql_native_password。

为此需要打开 MySQL 控制台,并在 Linux 终端上运行以下命令。

sudo mysql
登录mysql

现在,我们需要检查数据库对不同用户使用的身份验证方法。你可以通过运行以下命令来执行此操作。

SELECT user,authentication_string,plugin,host FROM mysql.user;
检查用户身份验证方法

从上图中,我们可以确认 root 用户确实使用 auth_socket 进行了身份验证。我们需要使用下面的“ALTER USER”命令切换到密码验证的使用。另外需要注意的是,确保使用较强的安全密码(应超过 8 个字符,结合数字、字符串和特殊符号等),因为它将替换你在执行上述命令“sudo mysql_secure_installation” 时设置的密码。运行以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED WITH


    
 mysql_native_password BY 'your_password';
更改root身份验证

注意,上图中亮绿色突出显示的文本是你设置安全密码的地方。现在,我们需要重新加载授权表并将更改更新到 MySQL 数据库。通过执行以下命令来执行此操作。

FLUSH PRIVILEGES;
刷新权限

完成后,我们需要确认 root 用户不再使用 auth_socket 进行身份验证。通过再次运行以下命令来执行此操作。

SELECT user,authentication_string,plugin,host FROM mysql.user;
检查root身份验证

从上图中,我们看到 root 身份验证方法已从“auth_socket”更改为“mysql_native_password”。

由于我们更改了 root 的身份验证方法,因此我们无法使用之前使用的相同命令打开 MySQL 控制台。即“sudo mysql”。我们需要包括用户名和密码参数,如下所示。

mysql -u root -p

“-u”表示用户,这里是“root”,“-p”代表“password”,一旦你按下 Enter 键,服务器就会提示你输入密码。


mysql -u root -p
创建新用户

一切都设置好后,你可以创建一个新用户,并授予该用户适当的权限。我们将创建一个用户 'PyDataStudio' 并分配对所有数据库表的权限以及更改、删除和添加用户权限的权限。逐行执行下面的命令。

CREATE USER 'PyDataStudio'@'localhost' IDENTIFIED BY 'strong_password';

GRANT ALL PRIVILEGES ON *.* TO 'PyDataStudio'@'localhost' WITH GRANT OPTION;

第一个命令将创建新用户,第二个命令分配所需的权限。

我们现在可以通过运行以下命令来测试我们的新用户。

mysql -u PyDataStudio -p

测试我们的新用户

在Ubuntu上安装MySQL-Server

在 Ubuntu 服务器上安装 MySQL-server 与上述步骤没有太大区别。但是,由于服务器是远程访问的,我们还需要为服务器启用远程访问。

要安装数据库并配置安全选项,只需在终端上逐行运行以下命令。

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

安装成功后,需要启用远程访问。从逻辑上讲,我们需要在 Ubuntu 服务器防火墙上打开一个端口,以便 MySQL 数据库进行通信。默认情况下,MySQL 服务在 3306 端口上运行。执行以下命令。

sudo ufw enable
sudo ufw allow mysql
启用远程访问

为了增强 MySQL 数据库的可靠性和可访问性,可以将 MySQL-server 服务配置为在启动时开始运行。执行以下命令。

sudo systemctl enable mysql
在启动时启用 MySQL Server

现在需要配置服务器的接口,从而服务器能够侦听远程可访问的接口。我们需要编辑“mysqld.cnf”文件。运行以下命令。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
配置绑定地址

默认情况下,绑定地址为“127.0.0.1”。为公网接口添加绑定地址,为服务网络接口添加另一个绑定地址。你可以将所有 IP 地址的绑定地址配置为“0.0.0.0”。

至此本文已经结束,为了满足不同用户的需求,云朵君将会继续分享在Linux Centos和 Windows 上安装和配置 Mysql 的保姆级教程,希望能够帮助到你。如果你觉得本文对你有帮助,可以点赞/在看/分享给朋友们~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147276
 
177 次点击