二进制包是针对一些通用环境做的编译包,在大部分 linux平台上都能直接安装。相比 yum 和 rpm 安装,预编译二进制包安装的优势有:
1. 更灵活,可以自定义安装路径,不像 yum/rpm 那样,只能安装到固定陌路下
2. 可以安装最新版本, 不受发行版限制
卸载原有MySQL
大多数Linux版本会默认有MySQL,安装前需要卸载原MySQL
rpm -qa | grep mysql // 这个命令会查看该操作系统上是否已经安装了mysql数据库
如果你系统有安装,那可以选择进行卸载
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
建立相关目录
安装前先创建如下目录:
mkdir /opt/software # 存放下载的安装包
mkdir /opt/mysql # 存放解压后的文件
mkdir /data/mysql/mysql_3306 # 对于一个MySQL实例
mkdir /data/mysql/mysql_3306/data # 数据文件
mkdir /data/mysql/mysql_3306/logs # 日志文件
mkdir /data/mysql/mysql_3306/tmp # 临时文件
下载MySQL压缩包
cd /opt/software
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
# MySQL启动程序放置
cd /opt/mysql
tar zxvf /opt/software/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
创建 mysql 的环境变量目录
cd /usr/local/
ln -s /opt/mysql/mysql-5.6.27-linux-glibc2.5-x86_64 mysql
把mysql启动用的帐号创建出来
groupadd mysql
useradd -r -g mysql mysql -d /usr/local/mysql
修改权限
chown -R mysql:mysql /data/mysql/mysql_3306
cd /usr/local/mysql
chown –R mysql:mysql *
新建 /etc/my.cnf
# 文件内容如下
[client]
port = 3306
socket = /tmp/mysql.sock
# The MySQL server
[mysqld]
# Basic
port = 3306
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
tmpdir = /data/mysql/mysql3306/tmp
socket = /tmp/mysql.sock
log-bin = /data/mysql/mysql3306/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 =1003306
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/mysql3306/data
innodb_log_group_home_dir = /data/mysql/mysql3306/logs
innodb_data_file_path = ibdata1:100M: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
初始化数据库
# 先安装一个so文件
yum install -y libaio
cd /usr/local/mysql
./scripts/mysql_install_db
启动
echo "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source /etc/profile
cp support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start
/etc/init.d/mysql stop