mysql的安装有APM安装与编译安装,今天选择一种可高度自定义的编译安装。
1. 准备工作
1.1 安装依赖包
# 对于基于RPM的系统(如CentOS/RHEL):
sudo yum install -y gcc gcc-c++ cmake make ncurses-devel openssl-devel bison \
libaio-devel libcurl-devel zlib-devel
1.2 创建MySQL用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
1.3 下载MySQL源码
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44
2. 编译配置
2.1 创建编译目录
bash
mkdir build
cd build
2.2 运行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 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_BOOST=/data/tools/boost_1_59_0 \ #
-DWITH_DEBUG=0
2.3 编译和安装
bash
make -j$(nproc) # 使用所有CPU核心加速编译
sudo make install
3. 安装后配置
3.1 设置权限
bash
cd /usr/local/mysql
sudo chown -R mysql:mysql .
3.2 初始化数据库
bash
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:初始化过程会生成一个临时root密码,请记下这个密码(在输出信息的最后)。
3.3 设置SSL(可选)
bash
sudo bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
3.4 修改配置文件
创建或编辑 /etc/my.cnf 文件:
ini
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
# 禁用符号链接以防止安全风险
symbolic-links=0
# 设置字符集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
3.5 创建日志和PID目录
bash
sudo mkdir /var/log/mysql
sudo touch /var/log/mysql/mysqld.log
sudo chown -R mysql:mysql /var/log/mysql
sudo mkdir /var/run/mysqld
sudo touch /var/run/mysqld/mysqld.pid
sudo chown -R mysql:mysql /var/run/mysqld
4. 启动MySQL服务
4.1 创建启动脚本
bash
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
4.2 启动MySQL
bash
sudo /etc/init.d/mysqld start
4.3 设置开机启动
bash
# 对于systemd系统(如CentOS 7+/Ubuntu 16.04+):
sudo cp /usr/local/mysql/support-files/mysql.server /usr/lib/systemd/system/mysqld.service
sudo systemctl daemon-reload
sudo systemctl enable mysqld
# 对于SysV init系统:
sudo chkconfig --add mysqld
sudo chkconfig mysqld on
5. 初始设置
5.1 修改root密码
使用初始化时生成的临时密码登录:
bash
/usr/local/mysql/bin/mysql -uroot -p
然后在MySQL提示符下:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
5.2 设置环境变量
将MySQL二进制文件路径添加到PATH:
bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
6. 验证安装
bash
mysql --version
应该显示类似以下内容:
text
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper
