MySQL 是一种流行的开源关系数据库管理系统(RDBMS),它使用 SQL 语法来执行数据库操作,如 CRUD(创建、读取、更新和删除),管理用户和权限。
MySQL 数据库是一个高性能数据库,在 LAMP 组合中扮演着不可或缺的角色,它存储网站数据。它与 PHP 无缝配合,在 web 开发中很受欢迎。MySQL 还具有高度的可定制性,支持多达数百万条记录的大型数据库,它还提供数据复制和冗余,以提供容错能力。
必备条件
- 预装 Ubuntu 22.04 系统
- 具有管理员访问权限的 Sudo 用户
可靠的互联网连接
(1) 更新 APT 软件包索引
首先,登录到您的服务器实例并更新本地 APT 包索引。
$ sudo apt update
(2) 安装 MySQL
MySQL 服务器包在 Ubuntu 的存储库中免费提供。在编写本指南时,最新版本是 MySQL server 8.0,并且已经托管在存储库中。
$ sudo apt install mysql-server -y
安装完成后,MySQL 守护进程就会自动启动并在后台安静运行,通过下命令来确认
$ sudo systemctl status mysql
也可以通过以下命令确认
$ systemctl is-active mysql
您可以将 MySQL 设置为随系统自动启动,如图所示。
$ sudo systemctl enable mysql
(3) MySQL Server 安装安全设置
默认的 MySQL 设置是不安全的,特别是如果您打算在生产中使用数据库服务器。
MySQL 安装提供了一个安全脚本,用于解决不太安全的默认选项,请运行以下命令:
$ sudo mysql_secure_installation
默认情况下,MySQL 使用 auth_socket 进行身份验证。这是一种无密码身份验证,使用 auth_socket 插件,用户可以使用其用户帐户凭据登录 MySQL 并对其进行身份验证。
如果您希望使用密码验证,请按 CTRL+C 取消操作并访问 MySQL 终端
$ sudo mysql
接下来,运行 ALTER USER 命令将 root 用户的身份验证方法修改为密码验证,如图所示。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
然后,退出 MySQL 终端
FLUSH PRIVILEGES
EXIT
再次运行脚本,提供 root 密码,然后按 ENTER。接下来,您可以选择更改 root 用户的密码或提供新密码。在我们的情况下,我们不修改密码,因此,我们将按 N。
对于其余提示,请按 Y 以保护数据库服务器的安全,执行以下操作来确保数据库安全性。
- 删除任何匿名用户
- 不允许 root 用户远程登录
- 删除测试数据库及其访问权限
- 保存通过重新加载特权表所做的更改
(4) 创建 MySQL 管理用户
默认情况下,MySQL 会在安装期间创建一个默认的根用户来管理数据库。用户拥有完全权限,因此可以对所有数据库、表、用户等进行绝对控制。
建议为运行管理任务创建一个单独的数据库用户,再次以 root 用户身份登录 MySQL 数据库服务器。
$ sudo mysql -u root -p
创建数据库用户
CREATE USER 'linuxtechi'@'localhost' IDENTIFIED BY 'password';
然后将所有权限授予用户,. 表示数据库服务器中的所有数据库。
GRANT ALL PRIVILEGES ON *.* TO 'linuxtechi'@'localhost' WITH GRANT OPTION;
接下来,刷新PRIVILEGES
FLUSH PRIVILEGES
退出 MySQL 终端
EXIT
以管理用户身份登录
$ mysql -u linuxtechi -p
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。