如何在centos 7上安装配置并开始使用mysql?

安装 MySQL

CentOS 7 默认的 yum 源中不包含 MySQL Community Server,因此我们需要首先添加官方的 Yum 软件源。

如何在centos 7上安装配置并开始使用mysql?

下载并安装 MySQL Yum 仓库

访问 MySQL 官方网站获取适合 CentOS 7 的 Yum 仓库下载链接,然后使用 wget 命令下载。

wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

下载完成后,使用 yum 命令本地安装这个仓库包:

sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm

安装成功后,系统会新增两个仓库:mysql80-community(默认启用)和 mysql-connectors-community

安装 MySQL 服务器

可以直接通过 yum 命令安装 MySQL Community Server 了:

sudo yum install mysql-community-server

在安装过程中,yum 会提示导入 GPG 密钥,输入 y 并回车确认即可。

启动并设置开机自启

安装完成后,使用 systemctl 命令启动 MySQL 服务,并将其设置为开机自动启动:

sudo systemctl start mysqld
sudo systemctl enable mysqld

可以使用 sudo systemctl status mysqld 命令来检查服务是否正在正常运行。


安全配置

MySQL 在首次启动时,会为 root 用户生成一个临时的随机密码,并存储在日志文件中,我们必须进行安全配置,包括修改密码、移除匿名用户等。

获取临时密码

如何在centos 7上安装配置并开始使用mysql?

临时密码位于 /var/log/mysqld.log 文件中,可以通过 grep 命令快速查找:

sudo grep 'temporary password' /var/log/mysqld.log

输出会类似如下形式,其中最后一部分就是临时密码:
[Note] A temporary password is generated for root@localhost: aL!dkf7>s>K1

运行安全配置脚本

MySQL 提供了一个名为 mysql_secure_installation 的交互式脚本来引导我们完成基础的安全设置。

sudo mysql_secure_installation

脚本执行流程如下:

  • 验证密码组件: 首先询问是否启用密码验证插件(Validate Password Plugin),建议选择 y,这会强制要求新密码具备一定的复杂度(长度、大小写、数字、特殊字符)。
  • 设置 root 密码: 输入之前获取的临时密码,然后按照提示设置一个新的、强固的 root 用户密码。
  • 移除匿名用户: 询问是否移除匿名用户,选择 y,匿名用户是潜在的安全风险。
  • 禁止 root 远程登录: 询问是否禁止 root 用户从远程主机登录,强烈建议选择 y,日常管理应通过 SSH 登录服务器后,再以 localhost 身份连接数据库。
  • 移除测试数据库: 询问是否移除默认的 test 数据库,选择 y
  • 重新加载权限表: 选择 y 使所有更改立即生效。

至此,MySQL 的基础安全配置已完成。


基本数据库与用户管理

我们可以使用新设置的 root 密码登录 MySQL,并进行基本的数据库和用户管理操作。

登录 MySQL

mysql -u root -p

系统会提示输入密码,输入后即可进入 MySQL 命令行界面。

创建数据库和表

以下是一些基础的 SQL 命令示例:

-- 创建一个名为 'webapp' 的数据库
CREATE DATABASE webapp;
-- 查看所有数据库
SHOW DATABASES;
-- 使用 'webapp' 数据库
USE webapp;
-- 创建一个 'users' 表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看表结构
DESCRIBE users;
-- 插入一条数据
INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com');
-- 查询数据
SELECT * FROM users;

创建专用数据库用户

如何在centos 7上安装配置并开始使用mysql?

为了安全起见,应用程序不应直接使用 root 用户,应为每个应用创建独立的数据库用户,并仅授予其必要的权限。

-- 创建一个新用户 'app_user',只能从本机(localhost)连接,密码为 'YourStrongPassword'
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'YourStrongPassword';
-- 授予 'app_user' 对 'webapp' 数据库所有表的所有权限
GRANT ALL PRIVILEGES ON webapp.* TO 'app_user'@'localhost';
-- 刷新权限,使更改生效
FLUSH PRIVILEGES;
-- 退出 MySQL
EXIT;

配置文件与防火墙

MySQL 的主要配置文件是 /etc/my.cnf,你可以根据服务器硬件和应用需求调整其中的参数,如字符集、最大连接数、缓存大小等。

参数 推荐值/说明 作用
default-storage-engine InnoDB 设置默认存储引擎,InnoDB 支持事务、行级锁。
character-set-server utf8mb4 设置服务器默认字符集,utf8mb4 完全支持包括 emoji 在内的 Unicode 字符。
collation-server utf8mb4_unicode_ci 设置默认排序规则。
max_connections 151 (或更高) 允许的最大并发连接数,需根据应用需求调整。
innodb_buffer_pool_size 系统内存的 50%-70% InnoDB 存储引擎最重要的缓存参数,对性能影响巨大。

修改配置后,需要重启 MySQL 服务才能生效:sudo systemctl restart mysqld

如果需要允许其他服务器远程连接此 MySQL 实例,除了在 MySQL 中创建可远程登录的用户(如 'user'@'%')外,还必须开放 CentOS 7 的防火墙端口 3306:

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

开放远程端口会带来安全风险,请确保只对可信的 IP 地址开放,并使用强密码。


相关问答 FAQs

问题1:如果忘记了 MySQL 的 root 密码,该如何重置?

解答: 重置 root 密码需要以“安全模式”启动 MySQL,步骤如下:

  1. 停止 MySQL 服务: sudo systemctl stop mysqld
  2. 跳过权限验证启动: sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录: mysql -u root
  4. 修改密码: 在 MySQL 命令行中执行:
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';
  5. 正常重启服务: 使用 sudo killall mysqld 停止安全模式进程,然后正常启动:sudo systemctl start mysqld,现在就可以用新密码登录了。

问题2:如何将数据库从一个服务器迁移到另一个 CentOS 7 服务器?

解答: 最常用的方法是使用 mysqldump 工具进行逻辑备份和恢复。

  1. 在源服务器上导出数据库:
    mysqldump -u root -p --single-transaction --routines --triggers database_name > database_name.sql

    这个命令会创建一个包含数据库结构、数据、存储过程和触发器的 SQL 文件。

  2. 将 SQL 文件传输到目标服务器: 可以使用 scprsync 命令。
    scp database_name.sql user@target_server:/path/to/backup/
  3. 在目标服务器上导入数据库:
    在目标服务器上登录 MySQL,创建一个空的数据库:CREATE DATABASE database_name;
    退出 MySQL,在命令行中执行导入:
    mysql -u root -p database_name < /path/to/backup/database_name.sql

    输入密码后,数据便会开始导入,导入完成后,记得在目标服务器上为应用创建相应的用户并授权。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-03 04:31
下一篇 2025-10-03 04:34

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信