目录
前言
本文只针对 RHEL7 和 Centos 7 的Linux操作系统。
MySQL安装可以分为源码包安装和RPM安装。其中源码包可自定义安装目录,但安装速度较慢;RPM安装为RPM默认安装目录,安装速度较快。MySQL 5.x系列 和 8.x 安装过程有部分差异,请根据需要选择安装的方式。
- MySQL 5.x RPM包安装链接
- MySQL 8.x RPM安装链接
- MySQL 8.x 源码包安装链接
编辑中。。
本文为MySQL 5.x 系列 源码包安装。
一、基础环境准备
- 虚拟机:CentOS 7.9 x86_64 4核4G 内网IP:192.168.0.111
- 宿主机:Win11
二、检查安装环境
1. 查询是否有mariadb相关rpm包
rpm -qa | grep mariadb
2. 移除所有mariadb rpm包
yum -y remove mariadb-libs-5.5.68-1.el7.x86_64
三、下载
1. 下载 mysql 源码包
注意:需要下载带 Includes Boost Headers 的包
cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.30.tar.gz
四、安装
1. 安装依赖库
yum -y install ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel libstdc++* libtool lrzsz
2. 创建用户以及相关目录
# 创建 mysql 用户,禁止登录
useradd -M -s /sbin/nologin mysql
# 创建数据目录
mkdir -p /usr/local/mysql/data
# 创建日志目录
mkdir -p /var/log/mysql/
# 创建tmp目录
mkdir -p /usr/local/mysql/tmp
# 创建sock文件
touch /usr/local/mysql/tmp/mysql.sock
# 赋予权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /var/log/mysql
3. 解压和编译
tar -zxvf mysql-boost-5.7.30.tar.gz
cd mysql-5.7.30/
注意:-DWITH_BOOST=/usr/local/src/mysql-版本号/boost/boost_版本,有可能boost版本不一定是1.59,那么需要自己查看一下。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/mysql-5.7.30/boost/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
4. 编译和安装(时间较长,当前虚拟机为 4核 4G,粗略计算 1 小时左右)
make && make install
五、初始化
1. initialize
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
记录密码
2. 创建配置文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
pid-file=/usr/local/mysql/tmp/mysqld.pid
port=3306
character-set-server=utf8
log-error=/var/log/mysql/mysqld.log
[mysql]
default-character-set=utf8
socket=/usr/local/mysql/tmp/mysql.sock
[client]
default-character-set=utf8
socket=/usr/local/mysql/tmp/mysql.sock
六、启动测试
1. 启动
# 启动
/usr/local/mysql/support-files/mysql.server start
2. 登录
/usr/local/mysql/bin/mysql -uroot -p'q8uG8EoJXf;V'
3. 修改密码
SET PASSWORD = PASSWORD('Flzx3qc@');
flush privileges;
4. 查询版本和编码格式
select version();
show variables like '%character%';
5. 开启root远程登录
use mysql;
select host,user,plugin from user;
# if plugin == caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Flzx3qc@';
update user set host = '%' where user = 'root';
flush privileges;
# if plugin == mysql_native_password
update user set host = '%' where user = 'root';
flush privileges;
6. 远程连接测试
七、配置环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
tail -1 /etc/profile
source /etc/profile
which mysql
mysql -V
八、注册系统服务与开机自启动
1. 注册系统服务
vim /usr/lib/systemd/system/mysqld.service # 新建
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl daemon-reload
pkill -9 mysqld
systemctl start mysqld
systemctl status mysqld
2. 设置开机自启动
systemctl enable mysqld
3. 重启
reboot
systemctl status mysqld
结语
以上就是MySQL 5.x在Linux上使用源码包安装,如安装过程中有任何问题,可以联系我的邮箱:2951797466@qq.com。
希望可以帮到你。:)