Nginx 的源码编译安装
Nginx 官网下载地址:http://nginx.org/en/download.html
安装依赖库:
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
下载、解压并进入源码目录:
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
编译安装,以下配置任选其一:
./configure
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
--prefix 指定安装目录,--with 用于添加模块。若出现 C compiler、PCRE 或 zlib 缺失错误,分别安装 gcc-c++、pcre-devel、zlib-devel 后重新执行 make。
CentOS 7 安装 MySQL
CentOS 7 通常默认安装 MariaDB,先检查并卸载:
rpm -qa | grep mariadb
rpm -e --nodeps 文件名
下载 MySQL 5.6 并安装到 /usr/local/mysql:
cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.37-linux-glibc2.12-x86_64 mysql
cd mysql
groupadd mysql
useradd -g mysql mysql
复制并编辑配置文件:
cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
lower_case_table_names=1
character-set-server=utf8
default-storage-engine = INNODB
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
初始化数据库并配置权限:
cd /usr/local/mysql
chown -R mysql:mysql ./
yum -y install autoconf
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --pid-file=/usr/local/mysql/data/mysql.pid
chown -R mysql:mysql data
如果出现 libnuma.so.1 缺失,执行 yum install libaio* -y 后重新初始化。
添加服务并启动:
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
systemctl start mysqld
把 MySQL 加入环境变量:
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
登录并设置 root 密码:
mysql -u root -p
第一次出现 Enter password: 时直接回车,然后执行:
set password = password('你的密码');
常见问题与用户授权
如果出现 mysql: command not found,可以创建命令链接:
ln -s /usr/local/mysql/bin/mysql /usr/bin
创建用户、授权并刷新权限:
grant all privileges on testDB.* to test@localhost identified by '1234';
grant all privileges on testDB.* to test@'%' identified by '密码';
flush privileges;
使用 binlog 反编译日志
whereis mysqlbinlog
./mysqlbinlog --no-defaults --base64-output=decode-rows -v --start-datetime='2018-10-29 14:07:00' --stop-datetime='2018-10-29 14:09:00' --database=test mysql-bin.000303 > log.log
其中 start-datetime 和 stop-datetime 指定时间范围,database 指定数据库,最后的 log.log 是输出文件。