Centos7.4 Mysql 5.7.21 二进制安装

一、安装依赖包:
    yum -y install cmake bison git ncurses-devel libaio gcc gcc-c++ lrzsz vim
    yum remove mariadb* -y
二、软件下载:
    cd /opt
wget --no-check-certificate https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz   
tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local
    cd /usr/local
    mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql-5.7.21
三、创建一个mysql用户和组
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    -r:建立系统账号
    -g:指定用户所属的起始群组
    -s:指定用户登入后所使用的shell
    -d:指定用户登入时的启始目录。
    -G:指定用户所属的附加群组
注意此用户仅用于运行mysql服务,而不是登录,因此使用useradd -r和-s /bin/false命令选项来创建对服务器主机没有登录权限的用户。
四、配置环境变量
    echo "export PATH=$PATH:/usr/local/mysql-5.7.21/bin" >> /etc/profile
    source /etc/profile
五、配置数据库目录
    数据目录:/usr/local/mysql-5.7.21/data
    错误日志log-error:/usr/local/mysql-5.7.21/log/mysql_error.log ###这个文件需要创建。
    二进制日志log-bin:/usr/local/mysql-5.7.21/log/mysql_bin.log
    慢查询日志slow_query_log_file:/usr/local/mysql-5.7.21/log/mysql_slow_query.log
    套接字socket文件:/usr/local/mysql-5.7.21/run/mysql.sock
    pid文件:/usr/local/mysql-5.7.21/run/mysql.pid
创建目录:
    mkdir -p /usr/local/mysql-5.7.21/{data,log,etc,run}
    touch /usr/local/mysql-5.7.21/log/mysql_error.log
    chown -R mysql:mysql /usr/local/mysql-5.7.21
    chmod -R 777 /usr/local/mysql-5.7.21/{data,log,etc,run}
六、配置my.cnf文件
vim /etc/my.cnf
[mysqld]
port = 3306
socket = /usr/local/mysql-5.7.21/run/mysql.sock
pid_file = /usr/local/mysql-5.7.21/run/mysql.pid
basedir = /usr/local/mysql-5.7.21
datadir = /usr/local/mysql-5.7.21/data
default_storage_engine = InnoDB
max_allowed_packet = 128M
max_connections = 2048
open_files_limit = 65535
skip-name-resolve
lower_case_table_names=1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
key_buffer_size = 16M
log-error = /usr/local/mysql-5.7.21/log/mysql_error.log
log-bin = /usr/local/mysql-5.7.21/log/mysql_bin.log
slow_query_log = 1
slow_query_log_file = /usr/local/mysql-5.7.21/log/mysql_slow_query.log
long_query_time = 2
tmp_table_size = 16M
max_heap_table_size = 16M
query_cache_size = 256M
server-id=11
enforce_gtid_consistency = on
gtid_mode = on
[client]
port = 3306
socket = /usr/local/mysql-5.7.21/run/mysql.sock
七、初始化
mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.21/ --datadir=/usr/local/mysql-5.7.21/data/
此时会生成一个临时密码,可以在mysql_error.log文件找到
grep 'temporary password' /usr/local/mysql-5.7.21/log/mysql_error.log


生成ssl
mysql_ssl_rsa_setup --basedir=/usr/local/mysql-5.7.21 --datadir=/usr/local/mysql-5.7.21/data/
八、配置服务,使用systemctl管理
    vim /usr/lib/systemd/system/mysqld.service
文件内容如下
# systemd service file for MySQL forking server
[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
Type=forking
PIDFile=/usr/local/mysql-5.7.21/run/mysql.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql-5.7.21/bin/mysqld --daemonize --pid-file=/usr/local/mysql-5.7.21/run/mysql.pid
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
让systemctl加载配置服务
systemctl daemon-reload
systemctl enable mysqld.service
systemctl start mysqld.service



九、用初始密码登录MySQL,再修改密码。








__________________________ END ________________________________________________