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 服务器版本,您可以通过使用下面的命令,来重新配置已安装的资源配置包,随时切换到另一个受支持的主要版本系列。
$ 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的版本吧
$ 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 服务端配置文件的这个初始配置,是允许远程链接的。