目录

mysql-数据库部署

mysql 数据库部署

以下是基于 CentOS 7 系统部署 MySQL 数据库的详细步骤及常见问题解决方案:

一、卸载旧版本 MySQL/MariaDB

  1. 停止服务并检查残留

    systemctl stop mariadb # 停止 MariaDB 服务 rpm -qa | grep mariadb # 检查 MariaDB 安装包 rpm -e --nodeps mariadb-libs-* # 强制卸载 MariaDB 及其依赖包 rm -rf /etc/my.cnf /var/lib/mysql # 删除残留配置和数据文件

    说明 :CentOS 7 默认集成 MariaDB(MySQL 分支),需彻底卸载避免冲突

二、安装 MySQL 官方 Yum 源

  1. 下载并配置 Yum 源

    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm rpm -ivh mysql57-community-release-el7-11.noarch.rpm

    验证 :检查 /etc/yum.repos.d/ 目录是否生成 mysql-community.repo 文件

  2. 解决 GPG 公钥错误 若安装时报错 Public key not installed ,执行:

    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum install mysql-community-server -y # 重新安装

    提示 :此错误因未验证软件包签名导致

三、启动 MySQL 服务及初始化

  1. 启动服务并设置开机自启

    systemctl start mysqld # 启动服务 systemctl enable mysqld # 设置开机自启 systemctl status mysqld # 检查状态
  2. 获取初始临时密码

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

    输出示例: A temporary password is generated for root@localhost: xxxxxx ,记下此密码

  3. 修改 root 密码

    mysql -uroot -p # 输入临时密码登录 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!'; # 新密码需包含大小写、数字、符号

    简化密码策略(可选) : 若需使用简单密码,修改密码策略后重:

    qSET GLOBAL validate_password_policy=LOW; SET GLOBAL validate_password_length=6; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    注意 :生产环境不推荐简化策略

四、配置 MySQL 字符集与远程访问

  1. 修改字符集为 UTF-8 编辑配置文件 /etc/my.cnf

    [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8

    重启服务生效: systemctl restart mysqld

  2. 允许远程访问

    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'Remote_Pass123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

    防火墙设置 :开放 3306 端口

    firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload

    说明 :确保 SELinux 未阻止访问,可临时关闭或配置策略

五、常见问题解决

  1. 服务启动失败

    • 检查 /var/log/mysqld.log 中的错误日志。
    • 确保 /var/lib/mysql 目录权限正确: chown -R mysql:mysql /var/lib/mysql
  2. 无法找到 mysql.sock

    find / -name mysql.sock # 查找 sock 文件路径 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock # 创建软链接

    若仍失败,重启服务或检查磁盘空间

  3. JDBC 连接失败

    • 错误 Access denied :检查用户权限及密码。
    • 错误 Communications link failure :确认防火墙和 MySQL 监听地址( bind-address=0.0.0.0

六、验证部署

  1. 本地登录测试

    mysql -uroot -p # 输入密码后进入 MySQL Shell SHOW DATABASES; # 查看数据库列表
  2. 远程连接测试 使用 MySQL 客户端工具(如 Navicat、DBeaver)配置 IP、端口、用户信息测试连接。

通过以上步骤,可在 CentOS 7 上完成 MySQL 的完整部署。若需特定版本(如 MySQL 8.0),需调整 Yum 源配置(如启用 mysql80-community 仓库)