Debian 10 以后的系统默认使用了 MariaDB 数据库,软件源中没有 mysql。所以,要安装 mysql,需要从 mysql 官网下载安装。常用的方式就是通过 apt 资源库进行安装。

本笔记在 Debian 12.7 测试。

一、安装 mysql

1. 添加 MySQL APT 资源库

1) 进入 MySQL APT 版本库的下载页面 https://dev.mysql.com/downloads/repo/apt/。

2)下载最新的 MYSQL APT 资源库配置包(mysql-apt-config_version_all.deb) 。

这里,我下载的是 mysql-apt-config_0.8.33-1_all.deb

3)安装 MYSQL APT 资源库配置包(mysql-apt-config_0.8.33-1_all.deb)

$ sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb

在安装软件包期间,系统会要求你选择要安装的 MySQL 服务器版本,这里我们选择最新的 mysql-8.4-lts 版本。

mysql-apt-config-nkdh.png

如果需要修改之前设置的 MySQL 服务器版本,您可以通过使用下面的命令,来重新配置已安装的资源配置包,随时切换到另一个受支持的主要版本系列。

$ sudo dpkg-reconfigure mysql-apt-config

4)更新软件包信息:

$ sudo apt update

注意:一旦在系统上启用了 MySQL APT 资源库,就无法再从平台的本地软件仓库安装任何 MySQL 软件包,直到禁用 MySQL APT 资源库为止。

2. 使用 APT 安装 MySQL

使用以下命令安装 MySQL:

$ sudo apt install mysql-server

这将安装 MySQL 服务器的软件包,以及客户端和数据库公共文件的软件包。期间,系统会要求你为 MySQL 安装的根用户(root)提供一个强密码。

mysql-community-server-lkqb.png

安装完看看我们mysql的版本吧

$ mysql --version
mysql  Ver 8.4.3 for Linux on x86_64 (MySQL Community Server - GPL)

3. 体验 mysql 数据库

用数据库链接命令 mysql -u root -p 即可进入数据库,密码输入之前安装时设置的强密码

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.4.3 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

输入简单的查询命令来查看数据库系统用户

mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> 

重要事项

请务必记住您设置的根密码。如果用户希望稍后再设置密码,可以在对话框中将密码字段留空,然后按 "确定";在这种情况下,对服务器的根访问将通过使用 Unix 套接字文件进行连接的 Socket Peer-Credential Pluggable Authentication 身份验证。您可以稍后使用 mysql_secure_installation 程序设置 root 密码。

二、允许数据库远程连接

初始安装的数据库,虽然有 root 用户,但并不允许远程连接,当然我们可以给 root 用户设定允许远程连接,但这并不安全,因此,需要新建一个用户并允许远程连接即可。

1. 创建一个用户

mysql>create user 'hollowman'@'%' identified by 'hollowman';

这条语句的作用是在 mysql.user 表中新建了一条用户数据,其中用户名为 hollowman,密码为 hollowman,plugin 默认为caching_sha2_password,权限基本为 N,也就是否。

mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| hollowman        | %         | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

2.给用户赋权

因为新建的用户权限基本为否,因此需要给用户赋予权限

mysql> grant all on *.* to 'hollowman'@'%';

all 表示全部权限(insert,update,delete等),*.* 表示任意数据库的任意表格。

三、常用的配置文件

通过 apt 安装的 mysql 服务配置文件本是 /etc/mysql/my.cnf,不过该文件并未实质配置数据,只是在文件中添加了 2 个包含目录。这两个目录下面的 cnf文件才是真是配置文件,其中:/etc/mysql/conf.d/mysql.cnf 是客户端配置文件,/etc/mysql/mysql.conf.d/mysqld.cnf 是服务端配置文件。

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log

MySQL 8.4 服务端配置文件的这个初始配置,是允许远程链接的。