centos编译安装msql

在CentOS系统中编译安装MySQL是一个需要细致操作的过程,本文将详细介绍从环境准备到最终配置的完整步骤,帮助用户顺利完成安装,编译安装MySQL可以更好地适应特定需求,同时获得最新的功能特性和性能优化。

centos编译安装msql

环境准备与依赖安装

在开始编译MySQL之前,需要确保系统满足基本要求并安装必要的依赖包,CentOS系统需要更新软件包列表并安装开发工具、编译器以及MySQL所需的库文件,执行以下命令更新系统并安装基础依赖:

sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install cmake ncurses-devel bison glibc-devel libaio-devel openssl-devel -y

建议创建一个专用的MySQL用户和用户组,以提升系统安全性,使用以下命令创建:

sudo groupadd mysql
sudo useradd -r -g mysql mysql

下载MySQL源码并解压

访问MySQL官方网站或GitHub仓库获取最新的源码包,以MySQL 8.0为例,使用wget命令下载:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.33.tar.gz

下载完成后,将源码包解压到指定目录,如/usr/local/src:

sudo tar -zxvf mysql-boost-8.0.33.tar.gz -C /usr/local/src
cd /usr/local/src/mysql-8.0.33

注意:MySQL 8.0的源码包中已包含Boost库,无需单独下载。

配置编译选项

编译前的配置是关键步骤,使用cmake工具可以根据需求定制安装选项,以下是一个常用的配置示例:

sudo cmake 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DSYSCONFDIR=/etc 
-DWITH_BOOST=boost 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
-DDEFAULT_CHARSET=utf8mb4 
-DDEFAULT_COLLATION=utf8mb4_general_ci 
-DENABLED_LOCAL_INFILE=1 
-DWITH_SSL=system 
-DWITH_ZLIB=system 
-DMYSQL_TCP_PORT=3306

配置完成后,检查输出信息确保没有错误,如需修改配置,可以运行sudo cmake . -LH查看所有可用选项。

编译与安装

配置成功后,开始编译过程,根据系统性能,编译可能需要较长时间,建议使用多核加速:

centos编译安装msql

sudo make -j$(nproc)

编译完成后,执行安装命令:

sudo make install

安装过程中,系统会将MySQL文件复制到指定目录,并创建必要的配置文件和目录结构。

初始化MySQL数据库

安装完成后,需要初始化MySQL数据目录并设置权限,运行以下命令:

sudo chown -R mysql:mysql /usr/local/mysql
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,会生成临时root密码,请务必记录下来,后续可以通过以下命令查看:

sudo grep 'temporary password' /usr/local/mysql/data/error.log

配置MySQL服务

将MySQL添加为系统服务并启动,复制配置文件到/etc目录:

sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

创建systemd服务文件:

sudo tee /etc/systemd/system/mysqld.service > /dev/null <<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=infinity
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

重新加载systemd并启动MySQL:

sudo systemctl daemon-reload
sudo systemctl start mysqld
sudo systemctl enable mysqld

安全配置与测试

运行安全脚本设置root密码并移除匿名用户:

centos编译安装msql

sudo /usr/local/mysql/bin/mysql_secure_installation

根据提示完成配置,最后测试MySQL是否正常运行:

sudo /usr/local/mysql/bin/mysql -u root -p

输入密码后,若能成功登录则表示安装完成。

相关问答FAQs

Q1: 编译MySQL时出现cmake未找到的错误怎么办?
A: 这是因为系统未安装cmake,可以通过sudo yum install cmake -y命令安装,确保版本不低于3.2,安装后重新运行配置命令即可。

Q2: 如何修改MySQL的默认字符集为utf8mb4?
A: 在/etc/my.cnf文件中添加以下配置:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4

保存后重启MySQL服务使配置生效。

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

(0)
热舞的头像热舞
上一篇 2025-12-23 22:15
下一篇 2025-12-23 22:26

相关推荐

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信