实验环境
- **系统版本:**CentOS Linux release 7.6.1810 (Core)
- 软件版本: mysql-boost-5.7.26
编译安装
安装依赖
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
下载软件
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.26.tar.gz
创建相关目录
# 软件目录
mkdir -p /application/
# 数据目录
mkdir -p /data/mysql/data
解压软件包
tar xf mysql-boost-5.7.26.tar.gz
cd mysql-5.7.26/
创建运行用户
useradd -M -s /sbin/nologin mysql
配置
注意:每个\
号后面不要有空格等字符,否则会报错。
cmake \
-DCMAKE_INSTALL_PREFIX=/application/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_BOOST=./boost \
-DMYSQL_TCP_PORT=3306 \
-DWITH_SYSTEMD=1 .
参数说明
-DCMAKE_INSTALL_PREFIX= #指定mysql数据库安装目录
-DMYSQL_DATADIR= #数据库文件
-DMYSQL_UNIX_ADDR= #连接文件位置
-DSYSCONFDIR= #指定配置文件目录
-DSYSTEMD_PID_DIR= #进程文件目录
-DDEFAULT_CHARSET= #指定默认使用的字符集编码
-DDEFAULT_COLLATION= #指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE= #存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE= #存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE= #存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE= #存储引擎
-DWITH_BOOST= #指定Boost库的位置,mysql5.7必须加该参数
-DMYSQL_TCP_PORT= #指定端口
-DWITH_SYSTEMD=
编译并安装
make && make install
配置环境变量
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
mysql -V #检查是否生效
修改数据库目录权限
chown -R mysql:mysql /application/mysql
chown -R mysql:mysql /data/
初始化数据
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
编写配置文件
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
配置systemctl管理文件
cat >/etc/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
启动数据库
systemctl start mysqld
systemctl status mysqld
检查MySQL
netstat -lntup|grep 3306
配置管理员密码
mysqladmin -uroot -p password onelpc.com
登录数据库
mysql -uroot -ponelpc.com