一.下载MySQL
官网下载MySQL 地址:http://www.mysql.com/downloads/
点击社区版本MySQL
选择MySQL版本
选择操作系统
点击Download下载MySQL
PS:也可以通过wget下载
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
二.安装MySQL
环境
# cat /etc/redhat-release
CentOS release 6.5 (Final)# mysql -V
mysql Ver 14.14 Distrib 5.6.29, for linux-glibc2.5 (x86_64) using EditLine wrapper
1.解压二进制安装包创建硬链接
# mkdir -pv /opt/mysql
#tar -xvf mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz
cd /usr/local/
# ln -s /opt/mysql/mysql-5.6.29-linux-glibc2.5-x86_64 mysql
2.新建mysql用户,用户组,指定homedir
#groupadd mysql
#mkdir -pv /data/mysql/mysql_3376/{data,logs,tmp}
#useradd mysql -g mysql -d /data/mysql/mysql_3376/ -s /dev/null
# chown -R mysql:mysql /data/mysql/mysql_3376/
# chown -R mysql:mysql /usr/local/mysql/
# chown -R mysql:mysql /opt/mysql/
3.新建配置文件/etc/my.cnf
[client]port = 3376
socket = /tmp/mysql.sock
# The MySQL server
[mysqld]
# Basic
port = 3376
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3376/data
tmpdir = /data/mysql/mysql3376/tmp
socket = /tmp/mysql.sock
log-bin = /data/mysql/mysql3376/logs/mysql-bin
log-error = error.log
slow-query-log-file = slow.log
skip-external-locking
skip-name-resolve
log-slave-updates
###############################
# FOR Percona 5.6
#extra_port = 3345
gtid-mode = 0
#thread_handling=pool-of-threads
#thread_pool_oversubscribe=8
explicit_defaults_for_timestamp
###############################
server-id =43376
character-set-server = utf8
slow-query-log
binlog_format = mixed
max_binlog_size = 128M
binlog_cache_size = 1M
expire-logs-days = 5
back_log = 500
long_query_time=1
max_connections=1100
max_user_connections=1000
max_connect_errors=1000
wait_timeout=100
interactive_timeout=100
connect_timeout = 20
slave-net-timeout=30
max-relay-log-size = 256M
relay-log = relay-bin
transaction_isolation = READ-COMMITTED
performance_schema=0
#myisam_recover
key_buffer_size = 64M
max_allowed_packet = 16M
#table_cache = 3096
table_open_cache = 6144
table_definition_cache = 4096
sort_buffer_size = 128K
read_buffer_size = 1M
read_rnd_buffer_size = 1M
join_buffer_size = 128K
myisam_sort_buffer_size = 32M
tmp_table_size = 32M
max_heap_table_size = 64M
query_cache_type=0
query_cache_size = 0
bulk_insert_buffer_size = 32M
thread_cache_size = 64
#thread_concurrency = 32
thread_stack = 192K
skip-slave-start
# InnoDB
innodb_data_home_dir = /data/mysql/mysql3376/data
innodb_log_group_home_dir = /data/mysql/mysql3376/logs
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_buffer_pool_size = 100M
innodb_buffer_pool_instances = 8
#innodb_additional_mem_pool_size = 16M
innodb_log_file_size = 200M
innodb_log_buffer_size = 16M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 10
innodb_sync_spin_loops = 40
innodb_max_dirty_pages_pct = 90
innodb_support_xa = 0
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 500
innodb_file_io_threads = 4
innodb_concurrency_tickets = 1000
log_bin_trust_function_creators = 1
innodb_flush_method = O_DIRECT
innodb_file_per_table
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_io_capacity = 2000
innodb_file_format = Barracuda
innodb_purge_threads=1
innodb_purge_batch_size = 32
innodb_old_blocks_pct=75
innodb_change_buffering=all
innodb_stats_on_metadata=OFF
[mysqldump]
quick
max_allowed_packet = 128M
#myisam_max_sort_file_size = 10G
[mysql]
no-auto-rehash
max_allowed_packet = 128M
prompt = '(product)\u@\h [\d]> '
default_character_set = utf8
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 512k
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
#malloc-lib= /usr/local/mysql/lib/mysql/libjemalloc.so
PS:如果在现有配置文件修改可以选择
# sed -i 's/3306/3376/g' my.cnf
验证下
[root@localhost etc]# grep 3376 my.cnf
# grep 3376 /etc/my.cnf
port = 3376
port = 3376
datadir = /data/mysql/mysql_3376/data
tmpdir = /data/mysql/mysql_3376/tmp
log-bin = /data/mysql/mysql_3376/logs/mysql-bin
server-id =43376
innodb_data_home_dir = /data/mysql/mysql_3376/data
innodb_log_group_home_dir = /data/mysql/mysql_3376/logs
MySQL配置文件结构
client:对mysql的所有客户端都生效
mysql:只对mysql这个命令有效
mysqld_multi:多实例启动
mysqld:是必须的配置选项
# ./scripts/mysql_install_db
PS:因为在/etc/my.cnf 指定了user和datadir所以直接执行初始化脚本即可
5.添加环境变量
#echo 'export MySQL_HOME=/usr/local/mysql' >> /etc/profile
#echo 'export PATH=$PATH:$MySQL_HOME/bin' >> /etc/profile
# source /etc/profile
# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
#pwd
/usr/local/mysql/support-files
# cp mysql.server /etc/init.d/mysql
# /etc/init.d/mysql start
Starting MySQL.. SUCCESS!
7.安全加固
> delete from mysql.user where user!='root' or host!='localhost';
> truncate table mysql.db;
> drop database test;
> flush privileges;
8.检查启动是否正常
# ps -ef |grep mysql
root 6432 1 0 02:41 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql_3376/data --pid-file=/data/mysql/mysql_3376/data/mysql.pid
mysql 7511 6432 0 02:41 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3376/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql_3376/data/error.log --pid-file=/data/mysql/mysql_3376/data/mysql.pid --socket=/tmp/mysql3376.sock --port=3376
root 7562 3102 0 02:49 pts/1 00:00:00 grep mysql
# netstat -nlp | grep mysql
tcp 0 0 :::3376 :::* LISTEN 7511/mysqld
unix 2 [ ACC ] STREAM LISTENING 32002 7511/mysqld /tmp/mysql3376.sock
查看error.log是否有报错