操作系统版本:

[root@Darren2 ~]# cat /etc/redhat-release

CentOS release 6.5 (Final)


操作系统内核:

[root@Darren2 ~]# uname -r

2.6.32-431.el6.x86_64


关闭防火墙并关闭自启动:

[root@Darren2 ~]# /etc/init.d/iptables stop

[root@Darren2 ~]# chkconfig --level 2345 iptables off


临时禁用selinux,并修改配置文件重启系统也禁用:

[root@Darren2 ~]# setenforce 0

[root@Darren2 ~]# vim /etc/sysconfig/selinux

SELINUX=disabled


创建目录,把mysql二进制包上传到此目录下:

[root@Darren2 ~]# mkdir -p /home/tools


切换到目录下,解压二进制包:

[root@Darren2 ~]# cd /home/tools/

[root@Darren2 tools]# tar zxf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz


创建解压包的软链接,创建软连接的目的主要是方便以后升级:

[root@Darren2 tools]# ln -s /home/tools/mysql-5.7.14-linux-glibc2.5-x86_64  /usr/local/mysql


新建用户组和用户:

[root@Darren2 local]# groupadd mysql     

[root@Darren2 local]# useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql/ mysql


创建mysql数据,日志,临时等目录,并修改所有者和所属组:

[root@Darren2 local]# mkdir -p /data/mysql/mysql3306/data /data/mysql/mysql3306/log /data/mysql/mysql3306/tmp

[root@Darren2 local]# chown -R mysql:mysql /data/mysql/mysql3306/


修改/etc/my.cnf文件,使用默认my.cnf的也可以初始化成功,不过一些文件的位置会有点乱,这里根据个人习惯修改如下:

[root@Darren2 tools]# vim /etc/my.cnf

[client]

port            = 3306

socket          = /tmp/mysql.sock

[mysql]

prompt="\\u@\\h [\\d]>"

#pager="less -i -n -S"

#tee=/opt/mysql/query.log

no-auto-rehash

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

log = /opt/mysql/mysqld_multi.log

[mysqld]

#misc

user = mysql

basedir = /usr/local/mysql

datadir = /data/mysql/mysql3306/data

port = 3306

socket = /tmp/mysql.sock

event_scheduler = 0

tmpdir = /data/mysql/mysql3306/tmp

#timeout

interactive_timeout = 300

wait_timeout = 300

#character set

character-set-server = utf8

open_files_limit = 65535

max_connections = 100

max_connect_errors = 100000

#lower_case_table_names =1

#logs

log-output=file

slow_query_log = 1

slow_query_log_file = slow.log

log-error = error.log

log_warnings = 2

pid-file = mysql.pid

long_query_time = 1

#log-slow-admin-statements = 1

#log-queries-not-using-indexes = 1

log-slow-slave-statements = 1

#binlog

#binlog_format = STATEMENT

binlog_format = row

server-id = 23306

log-bin = /data/mysql/mysql3306/logs/mysql-bin

binlog_cache_size = 4M

max_binlog_size = 256M

max_binlog_cache_size = 1M

sync_binlog = 0

expire_logs_days = 10

#procedure

log_bin_trust_function_creators=1

#

gtid-mode = 0

#relay log

skip_slave_start = 1

max_relay_log_size = 128M

relay_log_purge = 1

relay_log_recovery = 1

relay-log=relay-bin

relay-log-index=relay-bin.index

log_slave_updates

#slave-skip-errors=1032,1053,1062

#skip-grant-tables

#buffers & cache

table_open_cache = 2048

table_definition_cache = 2048

table_open_cache = 2048

max_heap_table_size = 96M

sort_buffer_size = 128K

join_buffer_size = 128K

thread_cache_size = 200

query_cache_size = 0

query_cache_type = 0

query_cache_limit = 256K

query_cache_min_res_unit = 512

thread_stack = 192K

tmp_table_size = 96M

key_buffer_size = 8M

read_buffer_size = 2M

read_rnd_buffer_size = 16M

bulk_insert_buffer_size = 32M

#myisam

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

#innodb

innodb_buffer_pool_size = 100M

innodb_buffer_pool_instances = 1

innodb_data_file_path = ibdata1:100M:autoextend

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 8M

innodb_log_file_size = 100M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 50

innodb_file_per_table = 1

innodb_rollback_on_timeout

innodb_status_file = 1

innodb_io_capacity = 2000

transaction_isolation = READ-COMMITTED

innodb_flush_method = O_DIRECT


数据库初始化,默认是带密码的,也可以指定参数--initialize-insecure则不需要密码

[root@Darren2 data]# cd /usr/local/mysql/bin/   

[root@Darren2 bin]# ./mysqld --initialize --user=mysql


查看密码:

[root@Darren2 data]# cat /data/mysql/mysql3306/data/error.log |grep password

2016-11-17T13:29:25.055578Z 1 [Note] A temporary password is generated for root@localhost: XgqTE9Cb+rLc


复制启动脚本并改名为mysql:

[root@Darren2 init.d]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql


启动mysql服务,并加入自启动中:

[root@Darren2 init.d]# /etc/init.d/mysql start

[root@Darren1 ~]# chkconfig --add mysql


执行命令加入环境变量:

echo 'export PATH=$PATH:/usr/local/mysql/bin/'>>/etc/profile

[root@Darren2 init.d]# source /etc/profile

[root@Darren2 init.d]# mysql -S /tmp/mysql.sock -p

Enter password:   --写入上面查看到的密码


立即修改用户密码:

unknown)@localhost [(none)]>alter user user() identified by '147258';


查看数据库账号,5.7中user表中账号比较安全,不需要账号安全加固,即不需要删除无用账号

root@localhost [(none)]>select user,host from mysql.user;

+-----------+-----------+

| user      | host      |

+-----------+-----------+

| mysql.sys | localhost |

| root      | localhost |

+-----------+-----------+