在 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 文件,其中包含数据库的所有数据和结构。