centos 安装mysql5.7.38
时间: 2024-12-25 08:19:11 浏览: 7
### 安装前准备
确保服务器已更新至最新状态并安装必要的依赖包:
```bash
yum update -y
yum install wget nano net-tools vim gcc-c++ cmake bison-devel ncurses-devel openssl-devel perl -y
```
### 检测现有 MySQL 或 MariaDB 并移除
为了防止版本冲突,建议先检查是否有旧版 MySQL 或 MariaDB 存在,并将其完全卸载[^2]。
```bash
rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb
```
如果发现任何与 MySQL 或 MariaDB 相关的结果,则需执行如下命令来安全地卸载它们:
```bash
rpm -e --nodeps [package_name]
```
其中 `[package_name]` 是通过上述 `grep` 命令获取的具体软件包名称。对于无法正常卸载的情况,可以考虑使用强制删除的方式处理残留文件夹和数据目录,在此之前务必确认停止了相关服务:
```bash
service mysqld stop || service mariadb stop
whereis mysql
find / -name mysql
rm -rf [path_to_mysql_or_mariadb_files]
```
请注意备份重要资料后再操作以上指令。
### 下载 MySQL 5.7.38
前往官方下载页面或直接利用wget工具从镜像站点拉取压缩包:
```bash
cd /usr/local/src/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
tar zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.38
ln -s /usr/local/mysql-5.7.38 /usr/local/mysql
```
创建所需用户组和服务账户用于运行数据库实例:
```bash
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql/*
```
初始化数据库环境:
```bash
mkdir -p /data/mysql/{data,logs,tmp}
chmod 750 /data/mysql/tmp
chown -R mysql:mysql /data/mysql/
/usr/local/mysql/bin/mysqld \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql/data
```
设置开机自启脚本并将之加入系统服务管理器中去:
```bash
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
```
编辑配置文件 `/etc/my.cnf` 来指定基础参数设定(如未存在则新建),注意调整 `basedir`, `datadir` 和其他必要选项指向正确位置[^4]:
```ini
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql/data
socket = /tmp/mysql.sock
port = 3306
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
explicit_defaults_for_timestamp=true
max_connections=500
innodb_buffer_pool_size=1G
server-id=1
log-bin=mysql-bin
expire_logs_days=7
slow_query_log_file=/var/log/slow.log
long_query_time=2
```
启动 MySQL 服务并验证其工作状况:
```bash
/etc/init.d/mysqld start
netstat -tunlp | grep :3306
```
最后一步是登录到新部署好的 MySQL 实例内完成初始的安全加固措施,比如修改 root 密码、禁用远程访问等功能特性[^3]。
阅读全文