MySQL 源码安装配置指南(以 Ubuntu 为例)
安装依赖
sudo apt update sudo apt install -y cmake build-essential libssl-dev libncurses5-dev libreadline-dev zlib1g-dev libboost-all-dev
下载源码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.33.tar.gz tar -zxvf mysql-boost-8.0.33.tar.gz cd mysql-8.0.33
配置编译选项
mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=../boost -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci -DENABLED_LOCAL_INFILE=ON -DWITH_SSL=system
编译安装
make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install
创建系统用户和目录
sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo mkdir -p /usr/local/mysql/data sudo chown -R mysql:mysql /usr/local/mysql
初始化数据库
cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:保存输出的临时 root 密码(格式:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 临时密码)

配置文件设置
sudo cp support-files/mysql.server /etc/init.d/mysql sudo vim /etc/my.cnf
[mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock
启动服务
sudo /etc/init.d/mysql start
修改 root 密码
bin/mysql -u root -p # 输入临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES;
设置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc source ~/.bashrc
验证安装
mysql -V # 输出: mysql Ver 8.0.33 for Linux on x86_64 (Source distribution)
常见问题解决
-
CMake 错误:
- 检查缺失的依赖包,根据错误提示安装对应开发包
- 清除 CMake 缓存:
rm CMakeCache.txt
-
启动失败:

tail -f /usr/local/mysql/data/主机名.err # 查看错误日志
-
连接问题:
sudo ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
卸载方法
sudo /etc/init.d/mysql stop sudo rm -rf /usr/local/mysql sudo rm -rf /etc/my.cnf /etc/init.d/mysql sudo userdel mysql sudo groupdel mysql
注意:
- 编译过程可能耗时较长(30分钟至数小时)
- 确保系统有足够内存(建议 >2GB)
- 不同版本 Boost 要求不同,MySQL 8.0 要求 Boost 1.77.0
- 生产环境建议添加防火墙规则:
sudo ufw allow 3306
通过以上步骤,您已完成 MySQL 的源码编译安装,可根据需要进一步优化配置参数。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/288292.html

