查看是否安装过mysql软件包
rpm -qa|grep mysql
rpm -qa|grep mariadb
rpm -e --nodeps mysql的软件包名
建立mysql账号
useradd -s /sbin/nologin -M mysql
安装依赖包
yum install -y gcc
yum install -y gcc-c++
yum install -y ncurses
yum install -y bison
yum install -y git
yum install -y make
yum install -y cmake
yum install -y openssl
yum install -y openssl-devel
yum install -y ncurses-devel
yum install -y libtirpc libtirpc-devel
yum install -y libarchive
yum install -y rpcgen
yum install -y rpcgen-devel
解压源码包
tar -zxvf mysql-5.7.43.tar.gz
tar -zxvf mysql-boost-5.7.43.tar.gz
cd mysql-5.7.43
编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BOOST=/home/mysql-5.7.43/boost/boost_1_59_0
注:当带参数-DWITH_SYSTEMD=1时,编译后没有mysqld_safe守护进程
MySQL源码编译常用选项说明
源码配置选项 | 描述 |
---|
CMAKE_INSTALL_PREFIX | 软件安装目录 |
INSTALL_LAYOUT | 选择预定义的安装布局 |
MYSQL_DATADIR | 数据目录 |
DEFAULT_CHARSET | 默认服务器 |
DEFAULT_COLLATION | 默认服务器排序规则 |
INSTALL_SECURE_FILE_PRIVDIR | SQL导出目录 |
ENABLED_LOCAL_INFILE | 是否启用本地方式加载数据 |
MYSQL_TCP_PORT | TCP/IP端口 |
SYSCONFDIR | 选项文件 |
MYSQL_UNIX_ADDR | Unix套接字文件 |
WITH_SYSTEMD | 启用安装systemd支持文件 |
SYSTEMD_SERVICE_NAME | systemd下MySQL服务的名称 |
SYSTEMD_PID_DIR | systemd下PID文件的目录 |
COMPILATION_COMMENT | 关于编译环境的描述 |
WITH_BOOST | Boost库源码的位置 |
WITH_ARCHIVE_STORAGE_ENGINE | 将存储引擎ARCHIVE静态编译至服务器 |
WITH_BLACKHOLE_STORAGE_ENGINE | 将存储引擎BLACKHOLE静态编译至服务器 |
WITH_PERFSCHEMA_STORAGE_ENGINE | 将存储引擎PERFSCHEMA静态编译至服务器 |
WITH_EXAMPLE_STORAGE_ENGINE | 将存储引擎EXAMPLE静态编译至服务器 |
WITH_FEDERATED_STORAGE_ENGINE | 将存储引擎FEDERATED静态编译至服务器 |
WITH_PARTITION_STORAGE_ENGINE | 将存储引擎PARTITION静态编译至服务器 |
MySQL源码编译常用选项自定义设置
源码配置选项 | 默认值 | 定制值 |
---|
CMAKE_INSTALL_PREFIX | /usr/local/mysql | |
MYSQL_DATADIR | | /data |
DEFAULT_CHARSET | latin1 | utf8mb4 |
DEFAULT_COLLATION | latin2_swedish_ci | utf8mb4_general_ci |
INSTALL_SECURE_FILE_PRIVDIR | platform specific | /mysql/product/mysql-files |
ENABLED_LOCAL_INFILE | OFF | ON |
MYSQL_TCP_PORT | 3305 | |
SYSCONFDIR | | /etc |
MYSQL_UNIX_ADDR | /tmp/mysql.sock | |
WITH_BOOST | | /boost_1_59_0 |
WITH_ARCHIVE_STORAGE_ENGINE | | 1 |
WITH_BLACKHOLE_STORAGE | | 1 |
WITH_PERFSCHEMA_STORAGE_ENGINE | | 1 |
WITH_EXAMPLE_STORAGE_ENGINE | | 1 |
WITH_FEDERATED_STORAGE_ENGINE | | 1 |
WITH_PARTITION_STORAGE_ENGINE | | 1 |
创建路径
mkdir /data
mkdir /usr/local/mysql/data
安装
make -j 4 && make install
配置my.cnf
[mysqld]
# 设置端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库数据存放路径
datadir=/data
# 允许最大连接数
max_connections=200
# 服务端默认字符集
character-set-server=utf8mb4
# 默认排序规则
collation-server=utf8mb4_general_ci
# 默认存储引擎
default-storage-engine=INNODB
# 开启二进制日志
log-bin=mysql-bin
# 服务器ID
server-id=1
# 跳过所有复制错误
slave-skip-errors=all
赋权
chown mysql:mysql -R /data
chown mysql:mysql -R /usr/local/mysql
初始化
cd /usr/local/mysql
./bin/mysqld --initialize --user-mysql
cp ./support-files/mysql.server /etc/init.d/mysqld
chkconfig mysqld on
重置密码
mysql> set PASSWORD=PASSWORD('密码');
mysql> flush privileges;