CentOS安装MySQL源码
在CentOS上通过源码安装MySQL是一种常见且灵活的方法,尤其适用于需要高度定制化配置的场景,以下是详细的步骤和相关注意事项:
准备工作
1、更新系统:确保系统已更新到最新版本。
```bash
sudo yum update y
```
2、创建MySQL用户和组:
```bash
sudo groupadd mysql
sudo useradd r g mysql mysql
```
3、安装编译工具和依赖:
```bash
sudo yum groupinstall "Development Tools" y
sudo yum install cmake ncursesdevel y
```
4、下载MySQL源码包:从MySQL官方网站下载所需版本的源码包,下载MySQL 8.0.29:
```bash
wget HTTPS://cdn.mysql.com//Downloads/MySQL8.0/mysql8.0.29.tar.gz
tar xzvf mysql8.0.29.tar.gz
cd mysql8.0.29
```
编译和安装
1、配置编译参数:使用cmake配置MySQL的编译选项,这些选项可以根据需求进行调整。
```bash
cmake \
DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
DDEFAULT_CHARSET=utf8mb4 \
DDEFAULT_COLLATION=utf8mb4_unicode_ci \
DWITH_EXTRA_CHARSETS=all \
DWITH_MYISAM_STORAGE_ENGINE=1 \
DWITH_INNOBASE_STORAGE_ENGINE=1 \
DWITH_PARTITION_STORAGE_ENGINE=1 \
DWITH_READLINE=1 \
DWITH_ZLIB=system \
DWITH_LIBWRAP=0 \
DWITH_DEBUG=0 \
DENABLED_LOCAL_INFILE=1 \
DWITH_SSL=system \
DWITH_EMBEDDED_SERVER=1 \
DWITH_PLUGIN_DIR=/usr/local/mysql/lib/plugin \
.
```
2、编译源码:执行make命令进行编译,可以使用j
选项加快编译速度。
```bash
make j $(nproc)
```
3、安装MySQL:将编译好的MySQL安装到指定目录。
```bash
sudo make install
```
初始化数据库和配置文件
1、初始化数据库:初始化MySQL数据库并生成初始密码。
```bash
sudo /usr/local/mysql/bin/mysqld initialize user=mysql
```
2、修改权限:更改目录所有权,使MySQL用户拥有对安装目录的读写权限。
```bash
sudo chown R mysql:mysql /usr/local/mysql
```
3、创建配置文件:编辑MySQL配置文件my.cnf
,添加以下内容:
```ini
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
charactersetserver = utf8mb4
collationserver = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[mysqld_safe]
logerror=/var/log/mariadb.log
pidfile=/var/run/mariadb.pid
[client]
defaultcharacterset=utf8mb4
[mysql]
defaultcharacterset = utf8mb4
!includedir /etc/my.cnf.d
```
启动MySQL服务
1、启动MySQL服务:使用systemd启动MySQL服务。
```bash
sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
```
2、设置开机自启动:创建systemd服务文件,使MySQL在系统启动时自动启动。
```bash
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
```
3、启用并启动MySQL服务:
```bash
sudo systemctl enable mysqld
sudo systemctl start mysqld
```
4、检查MySQL服务状态:确认MySQL服务已成功启动。
```bash
sudo systemctl status mysqld
```
5、登录MySQL并设置root密码:使用初始密码登录MySQL并设置新的root密码。
```bash
sudo /usr/local/mysql/bin/mysql u root p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;
```
FAQs(常见问题解答)
1、Q: 安装过程中遇到依赖缺失怎么办?
A: 如果安装过程中遇到依赖缺失的问题,可以通过以下命令安装缺失的依赖:
```bash
sudo yum install <missing_dependency> y
```
如果缺少libaio,可以运行:
```bash
sudo yum install libaio y
```
2、Q: 如何卸载已安装的MySQL?
A: 要卸载已安装的MySQL,可以按照以下步骤操作:
1. 停止MySQL服务:
```bash
sudo systemctl stop mysqld
```
2. 删除MySQL相关的文件和目录:
```bash
sudo rm rf /usr/local/mysql
sudo find / name mysql exec rm rf {} \;
```
3. 删除MySQL配置文件:
```bash
sudo rm /etc/my.cnf
```