在 Centos 上编译和安装 MySQL,可以通过源码编译的方式来进行,以下是详细的步骤:
基本环境准备
1、系统环境:CentOS 7.6.1810 (Core)

2、内核版本:5.2.141.el7.elrepo.x86_64
安装依赖包
1、更新系统并安装基础工具:
- sudo yum update y
- sudo yum install y wget cmake gcc gccc++ ncurses ncursesdevel libaiodevel openssl openssldevel
下载 MySQL 源码及解压
1、下载 MySQL 源码:
- wget https://dev.mysql.com/get/Downloads/MySQL8.0/mysqlboost8.0.17.tar.gz
2、解压文件:
- tar xf mysqlboost8.0.17.tar.gz
- cd mysql8.0.17/
创建用户和目录
1、创建 MySQL 用户和组:
- groupadd mysql
- useradd r g mysql s /sbin/nologin mysql
2、创建安装目录并设置权限:

- mkdir p /usr/local/mysql
- chown R mysql:mysql /usr/local/mysql
- chown R mysql:mysql /data/mysql
- chmod R 755 /data/mysql
- chmod R 755 /usr/local/mysql
编译安装 MySQL
1、配置编译参数:
- cmake .
- DCMAKE_INSTALL_PREFIX=/usr/local/mysql
- DMYSQL_DATADIR=/data/mysql
- DSYSCONFDIR=/etc
- DMYSQL_TCP_PORT=3306
- DWITH_BOOST=~/mysql8.0.12/boost
- DDEFAULT_CHARSET=utf8
- DDEFAULT_COLLATION=utf8_general_ci
- DENABLED_LOCAL_INFILE=ON
- DWITH_INNODB_MEMCACHED=ON
- DWITH_INNOBASE_STORAGE_ENGINE=1
- DWITH_FEDERATED_STORAGE_ENGINE=1
- DWITH_BLACKHOLE_STORAGE_ENGINE=1
- DWITH_ARCHIVE_STORAGE_ENGINE=1
- DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
- DWITH_PERFSCHEMA_STORAGE_ENGINE=1
2、编译和安装:
- make j $(nproc)
- sudo make install
初始化数据库
1、初始化数据库文件:
- sudo /usr/local/mysql/bin/mysqld initialize user=mysql
2、启动 MySQL 服务:
- sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
3、创建 systemd 服务文件:
- sudo 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_safe
- Restart=always
- RestartSec=10
- [Install]
- WantedBy=multiuser.target
- EOF
4、启用并启动服务:

- sudo systemctl enable mysqld
- sudo systemctl start mysqld
登录 MySQL 并设置 root 密码
1、登录 MySQL:
- sudo /usr/local/mysql/bin/mysql u root
2、设置 root 密码:
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
- FLUSH PRIVILEGES;
- EXIT;
FAQs
1、如何检查 MySQL 是否启动成功?:使用命令systemctl status mysqld
可以查看 MySQL 服务的状态,如果显示 "active (running)",则表示 MySQL 已成功启动。
2、如何修改 MySQL 配置文件?:MySQL 的配置文件通常位于/etc/my.cnf
,可以使用文本编辑器(如 vi 或 nano)打开并进行编辑,修改后需要重启 MySQL 服务使更改生效,使用命令sudo systemctl restart mysqld
。
3、如何备份 MySQL 数据库?:可以使用mysqldump
工具进行备份,要备份名为mydatabase
的数据库,可以使用以下命令:mysqldump u root p mydatabase > mydatabase_backup.sql
,这将生成一个 SQL 文件,其中包含数据库的所有数据和结构。