1、安装前的准备
yum install \
vim \
git \
gcc \
gcc-c++ \
wget \
make \
cmake \
automake \
autoconf \
libaio \
libtool \
net-tools \
bison-devel \
libaio-devel \
ncurses-devel \
perl-Data-Dumper \
-y
2、下载boost_1_59_0
cd /usr/local
wget
http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
3、下载mysql-5.7.18
cd /root
wget
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz
tar -zxvf mysql-5.7.18.tar.gz
cd mysql-5.7.18
5、运行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_SYSTEMD=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local \
-DDEFAULT_CHARSET=utf8mb4 \
make
make install
5、添加mysql用户
useradd -s /sbin/nologin -M mysql
6、创建数据文件目录、所属组、用户改为mysql
mkdir /data/
mkdir /data/mysql/
chown -R mysql:mysql /etc/my.cnf
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /var/*/mysql*
chown -R mysql:mysql /usr/local/mysql/
7、修改SELinux
vim /etc/sysconfig/selinux
SELINUX=permissive
ESC
:wq
setenforce 0
8、my.cnf详细配置
vim /etc/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
datadir=/data/mysql
character-set-server=utf8mb4
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
character-set-client-handshake=FALSE
symbolic-links=0
log-error=/var/log/mysqld.log
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
secure_file_priv=/var/lib/mysql-files
server-id=1
binlog-format=Row
log-bin=/data/mysql/mysql-bin
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
ESC
:wq
9、初始化数据库配置
# --initialize-insecure参数为不安全的初始化方案,建议使用--initialize参数
# 以下代码执行完之后,会在/data/mysql/mysql-error.log保存初始密码
su mysql
su mysql !!!
su mysql !!!
/usr/local/mysql/bin/mysqld \
--initialize \
--user=mysql \
--datadir=/data/mysql \
--basedir=/usr/local/mysql \
# 查看初始密码
cat /var/lib/mysql/mysql.log|grep password
# ssh连接mysql,如果对ssh不了解,不要这样做
/usr/local/mysql/bin/mysql_ssl_rsa_setup \
--initialize \
--user=mysql \
vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
slow_query_log = 1
long_query_time = 1
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
log_error = /data/mysql/mysql-error.log
slow_query_log_file = /data/mysql/mysql-slow.log
default_storage_engine = InnoDB
[mysqld_safe]
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysqld.pid
ESC
:wq
10、添加mysqld.service
exit
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service
/usr/lib/systemd/system/
11、mysqld.service详细配置
vim /usr/lib/systemd/system/mysqld.service
# 将下面的配置覆盖整个文件内容
[Unit]
Description=开机启动MySQL.
After=default.target network.target syslog.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/mysql/mysqld.pid
TimeoutSec=0
PermissionsStartOnly=true
ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd
ExecStart=/usr/local/mysql/bin/mysqld --daemonize
--pid-file=/data/mysql/mysql.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
[Install]
WantedBy=multi-user.target
ESC
:wq
12、启用mysqld.service
systemctl enable mysqld
systemctl start mysqld
systemctl daemon-reload
13、测试配置是否正确,没有任何输出则表示一切正常
/usr/local/mysql/bin/mysqld_pre_systemd
14、数据文件所属用户修改为mysql(如果‘初始化数据库配置’时完全按文档进行,可不执行本步骤,不确定则执行)
chown -R mysql:mysql /data/mysql/
15、启动mysql
systemctl enable mysqld
systemctl start mysqld
16、添加mysql到mysql用户环境变量
su mysql
vim /home/mysql/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/mysql/bin
ESC
:wq
source /home/mysql/.bash_profile
17、尝试连接mysql
# mysql默认用户为root
mysql -u root -p
password:**************
#修改root[DB用户]初始密码
SET PASSWORD=PASSWORD('**************');
show databases;
use mysql;
show tables;
select * from user \G;
18、测试启动、停止、重启mysql
#启用并启动
systemctl enable mysqld
systemctl start mysqld
#禁用并关闭
systemctl disable mysqld
systemctl stop mysqld
#启用并重新启动
systemctl enable mysqld
systemctl restart mysqld