linux(centos7.5)编译安装 mysql5.7

本文指导如何在CentOS系统上下载并配置MySQL 5.7社区版,包括解压、权限设置、初始化服务、添加用户和安全设置,适合初学者和运维人员参考。

下载

官网地址 MySQL :: Download MySQL Community Server

可选择安装系统 centos 选择 linux通用 根据服务器系统选择 32/64位  选择 安装版本 当前最新 8.0 

点击 Looking for the latest GA version? 选择 5.7

然后复制链接 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 进入服务器

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

 解压 复制

#解压
tar -xzvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
#复制mysql 源文件到 /usr/local/mysql (自定义)
cp -r mysql-5.7.33-linux-glibc2.12-x86_64/ /usr/local/mysql

修改 my.conf

vim /etc/my.conf
[mysqld]
#mysql安装路径
basedir=/usr/local/mysql
#mysql数据存储路径
datadir=/usr/local/mysql/data
#连接文件
socket=/tmp/mysql.sock
#启动用户
user=mysql
#端口号
port=3306
#全局字符集
character-set-server=utf8
## 是否免密登录 需要重置密码时可以打开
#skip-grant-tables
##是否支持分区存储
symbolic-links=0
[client]
##连接客户端端口
port=3306
##连接文件
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
## 错误日志文件
log-error=/var/log/mysql/error.log
## 启动后的进程 pid
pid-file=/var/run/mysql/mysql.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

添加 用户及用户组

#添加用户组
groupadd mysql
#添加用户并归属到 mysql组
useradd mysql -g mysql
#查看
groups mysql

修改权限

保证mysql 用户有权操作 my.conf 中所设置的所以文件及文件夹 包括pid文件日志文件

#用户组给文件夹权限
chown -R mysql:mysql /usr/local/mysql
#用户给文件夹权限
chown -R mysql /usr/local/mysql
# 修改文件权限
chmod -R 755 /usr/local/mysql

#汇总 
chown -R mysql:mysql /usr/local/mysql && chown -R mysql /usr/local/mysql && chmod -R 755 /usr/local/mysql

初始化mysql服务

# 创建数据存储文件夹
cd /usr/local/mysql && mkdir data
# 初始化服务 --initialize-insecure 参数 初始密码为空
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --initialize-insecure


注册到 service 服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动

service mysql start|stop|restart|status

本地连接

# 连接
cd /usr/local/mysql/bin && ./mysql -uroot -p

更新密码

# 执行sql更新密码
SET PASSWORD = PASSWORD('root');
# 用户可连接ip 可设置为 % 所以域名ip
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
# 刷新权限
FLUSH PRIVILEGES;   

创建客户端软连接

ln -s /usr/local/mysql/bin/mysql /usr/bin

### 3. 安装依赖 在 CentOS 9 上编译安装 MySQL 5.7.44 需要先安装必要的依赖库。包括开发工具、编译器支持库和数据库相关组件。 ```bash dnf install -y git cmake make gcc gcc-c++ ncurses-devel bison openssl-devel libtirpc-devel rpcgen ``` 这些依赖项可以确保 CMake 编译系统正常运行,并提供必要的头文件和库以支持 MySQL编译过程[^1]。 ### 3. 下载源码包并解压 MySQL 5.7.44 的源码包可以从官方下载页面获取。使用 `wget` 命令下载: ```bash cd /usr/local/src wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.44.tar.gz tar -zxvf mysql-boost-5.7.44.tar.gz cd mysql-5.7.44 ``` 该步骤将源码包解压到当前目录,为后续的编译做好准备。 ### 3. 编译安装 使用 CMake 配置编译参数,并进行编译安装。以下命令指定了安装路径、数据存储目录以及启用部分常用功能模块: ```bash cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DENABLE_DTRACE=OFF \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ -DWITH_BOOST=boost ``` 随后执行编译安装操作: ```bash make -j$(nproc) make install ``` 此过程将根据系统 CPU 核心数并发编译,并最终将 MySQL 安装到 `/usr/local/mysql` 目录中。 ### 3. 创建用户和目录权限设置 为了安全起见,需要创建一个专用的 MySQL 用户,并设置相应的目录权限: ```bash useradd -r -s /bin/false mysql chown -R mysql:mysql /usr/local/mysql mkdir -p /usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql/data ``` 上述命令创建了 `mysql` 用户,并设置了数据目录的归属权。 ### 3. 初始化数据库 初始化 MySQL 数据库是安装过程中的关键步骤之一。执行以下命令完成初始化: ```bash /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 该命令会生成初始数据库结构,并且由于使用了 `--initialize-insecure` 参数,不会设置 root 密码。 ### 3. 配置 Systemd 服务 为了方便管理 MySQL 服务,可以创建一个 systemd 单元文件: ```bash cat > /etc/systemd/system/mysqld.service << EOF [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysqld.pid ExecStop=/bin/kill -SIGTERM \$MAINPID Restart=always PrivateTmp=false EOF ``` 加载并启动服务: ```bash systemctl daemon-reload systemctl enable mysqld systemctl start mysqld ``` 这将确保 MySQL 在系统启动时自动运行,并立即启动服务。 ### 3. 设置 root 密码 由于初始化过程中未设置密码,可以通过以下命令手动设置 root 用户的密码: ```bash /usr/local/mysql/bin/mysqladmin -u root password 'new_password' ``` 替换 `'new_password'` 为你希望设置的新密码。 ### 3. 创建数据库和插入数据 登录 MySQL 并创建一个新的数据库及表,并插入一条测试数据: ```bash /usr/local/mysql/bin/mysql -u root -p ``` 执行以下 SQL 语句: ```sql CREATE DATABASE testdb; USE testdb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) ); INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com'); ``` 退出 MySQL 控制台后,即可验证数据是否成功插入。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值