mysql-数据库部署
目录
mysql 数据库部署
以下是基于 CentOS 7 系统部署 MySQL 数据库的详细步骤及常见问题解决方案:
一、卸载旧版本 MySQL/MariaDB
停止服务并检查残留
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 源
下载并配置 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
文件解决 GPG 公钥错误 若安装时报错
Public key not installed
,执行:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum install mysql-community-server -y # 重新安装
提示 :此错误因未验证软件包签名导致
三、启动 MySQL 服务及初始化
启动服务并设置开机自启
systemctl start mysqld # 启动服务 systemctl enable mysqld # 设置开机自启 systemctl status mysqld # 检查状态
获取初始临时密码
grep 'temporary password' /var/log/mysqld.log
输出示例:
A temporary password is generated for root@localhost: xxxxxx
,记下此密码修改 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 字符集与远程访问
修改字符集为 UTF-8 编辑配置文件
/etc/my.cnf
:[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8
重启服务生效:
systemctl restart mysqld
允许远程访问
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 未阻止访问,可临时关闭或配置策略
五、常见问题解决
服务启动失败
- 检查
/var/log/mysqld.log
中的错误日志。 - 确保
/var/lib/mysql
目录权限正确:chown -R mysql:mysql /var/lib/mysql
- 检查
无法找到 mysql.sock
find / -name mysql.sock # 查找 sock 文件路径 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock # 创建软链接
若仍失败,重启服务或检查磁盘空间
JDBC 连接失败
- 错误
Access denied
:检查用户权限及密码。 - 错误
Communications link failure
:确认防火墙和 MySQL 监听地址(bind-address=0.0.0.0
)
- 错误
六、验证部署
本地登录测试
mysql -uroot -p # 输入密码后进入 MySQL Shell SHOW DATABASES; # 查看数据库列表
远程连接测试 使用 MySQL 客户端工具(如 Navicat、DBeaver)配置 IP、端口、用户信息测试连接。
通过以上步骤,可在 CentOS 7 上完成 MySQL 的完整部署。若需特定版本(如 MySQL 8.0),需调整 Yum 源配置(如启用
mysql80-community
仓库)