在Linux上安装MySQL需根据发行版使用apt、yum或dnf安装,配置文件位于/etc/mysql或/etc/my.cnf.d,通过mysql_secure_installation提升安全性,修改bind-address等参数后重启服务生效,使用mysql命令行工具连接,通过CREATE DATABASE和CREATE USER创建数据库与用户,用GRANT授权,mysqldump备份,mysql命令恢复数据。
在Linux上安装和配置MySQL,其实并不难,但需要一步一步来,确保每个环节都正确无误。下面就来详细说说这个过程,让你能快速上手MySQL环境搭建。
安装MySQL服务并进行配置,以支持数据库的正常运行。
如何在不同Linux发行版上安装MySQL?
不同的Linux发行版,安装MySQL的方式略有不同,但大体思路是一致的。
Debian/Ubuntu:
常用
包管理器。先更新软件包列表:
,然后安装MySQL服务器:
。安装过程中,可能会提示设置root用户的密码,记住这个密码。安装完成后,MySQL服务会自动启动。
CentOS/RHEL:
常用
包管理器。先更新软件包列表:
,然后安装MySQL服务器:
。安装完成后,需要手动启动MySQL服务:
,并设置开机自启:
。同样,安装过程中也会有root密码设置提示。
Fedora:
类似于CentOS/RHEL,使用
包管理器。
,然后
。启动和开机自启方式与CentOS/RHEL相同。
安装完之后,建议运行
命令,这是一个安全配置向导,可以设置root密码、移除匿名用户、禁止远程root登录等,提高MySQL的安全性。
MySQL配置文件在哪里?如何修改?
MySQL的主要配置文件通常位于
(Debian/Ubuntu) 或
(CentOS/RHEL/Fedora)。修改配置文件需要root权限,可以使用任何文本编辑器,比如
或
。
常见的配置项包括:
: 监听地址,默认为
,表示只允许本地连接。如果需要允许远程连接,需要修改为
或指定允许连接的IP地址。注意,修改后需要重启MySQL服务。
: 监听端口,默认为
。
: 数据库默认字符集,建议设置为
,支持更广泛的字符集。
: 数据库默认排序规则,建议设置为
,对大小写不敏感。
修改配置文件后,务必重启MySQL服务,使配置生效:
。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
如何连接到MySQL服务器?
安装并配置好MySQL后,就可以使用客户端工具连接到服务器了。最常用的客户端工具是
命令行客户端。
本地连接:
在终端输入
,然后输入root用户的密码,即可连接到本地MySQL服务器。
远程连接:
如果要连接到远程MySQL服务器,需要指定主机地址:
,然后输入对应用户的密码。
如果远程连接失败,可能是以下原因:
MySQL服务器未允许远程连接 (bind-address配置)。
防火墙阻止了3306端口的连接。
用户没有远程连接的权限。
可以通过
语句授权用户远程连接的权限。例如,允许用户
从任何IP地址连接到MySQL服务器:
注意替换
为实际密码。
用于刷新权限,使授权立即生效。
如何创建数据库和用户?
连接到MySQL服务器后,就可以创建数据库和用户了。
创建数据库:
使用
语句创建数据库。例如:
。
创建用户:
使用
语句创建用户。例如:
。
表示只允许本地连接,
表示允许任何IP地址连接。
授权:
使用
语句授权用户对数据库的权限。例如,授予用户
对数据库
的所有权限:
如何备份和恢复MySQL数据库?
数据备份是数据库管理的重要环节。MySQL提供了
工具用于备份数据库。
备份单个数据库:
。例如:
。
备份所有数据库:
。例如:
。
恢复数据库使用
客户端:
。例如:
。
备份文件是纯文本SQL文件,可以使用任何文本编辑器查看和修改。
总而言之,在Linux上安装和配置MySQL,需要熟悉包管理器、配置文件、客户端工具和SQL语句。希望这些步骤和注意事项能帮助你顺利搭建MySQL环境。
aptsudo apt updatesudo apt install mysql-serveryumsudo yum updatesudo yum install mysql-serversudo systemctl start mysqldsudo systemctl enable mysqlddnfsudo dnf updatesudo dnf install mysql-servermysql_secure_installation/etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf.d/mysqld.cnfnanovimbind-address127.0.0.10.0.0.0port3306character-set-serverutf8mb4collation-serverutf8mb4_unicode_cisudo systemctl restart mysqlmysqlmysql -u root -pmysql -h <主机地址> -u <用户名> -pGRANTtestGRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;passwordFLUSH PRIVILEGESCREATE DATABASE <数据库名>;CREATE DATABASE mydatabase;CREATE USER '<用户名>'@'主机地址' IDENTIFIED BY '密码';CREATE USER 'test'@'localhost' IDENTIFIED BY 'password';localhost%GRANTtestmydatabaseGRANT ALL PRIVILEGES ON mydatabase.* TO 'test'@'localhost';
FLUSH PRIVILEGES;mysqldumpmysqldump -u <用户名> -p <数据库名> > <备份文件.sql>mysqldump -u root -p mydatabase > mydatabase_backup.sqlmysqldump -u <用户名> -p --all-databases > <备份文件.sql>mysqldump -u root -p --all-databases > all_databases_backup.sqlmysqlmysql -u <用户名> -p <数据库名> < <备份文件.sql>mysql -u root -p mydatabase < mydatabase_backup.sql