查看是否安装过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;