blob.png

介绍

        是互联网领域里一款极重要的、且深受广大用户欢迎的开源关系型数据库软件之一,由瑞典MySQLAB公司开发与维护。2006年,MySQLAB公司被SUN公司收购,2008年,SUN公司被传统数据库领域大佬甲骨文(oracle)公司收购,因此,MySQL数据库目前属于Oracle公司,成为传统数据库领域老大的又一个重量级数数据库产品,自甲骨文公司收购MySQL后,使得自身在商业数据库与开源数据库领域市场占有份额都跃居第一的位置,这样的格局,引起了业内很多的人士的担忧,这种担忧直接诶导致后来的MySQL分支数据库MariaDB的诞生与发展。

        前面已经介绍过,MySQL属于传统关系型数据库产品,它的开放式的架构使得用户选择性很强,同时社区开发与维护人数众多,其功能稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MySQL的推广与使用带来了更多的利好。在MySQL成长与发展过程中,支持的功能逐渐增多,性能也在不断提高,对平台的支持也越来越多。

        MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,在将这些表放入不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度,灵活性可管理性也得到了很大提高。访问以及管理MySQL数据库的最常用标准化语言为SQL结构化查询语言。

安装

    1.下载

cd /usr/local/src
curl -O http://download.jifucha.net/mysql/mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz

    2.解压移动

tar -zxf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql

    3.创建mysql用户和授权

groupadd mysql
useradd -g mysql -s /sbin/nologin -M mysql
chown -R mysql.mysql /usr/local/mysql

    4.创建配置文件(可以省略)

cp /etc/my.cnf /etc/my.cnf-bat
sed -i 's#/var/lib/mysql/mysql.sock#/tmp/mysql.sock#g' /etc/my.cnf

    5.创建配置文件中的目录

cd /data/
mkdir -p mysql
cd mysql/
mkdir  -p data  log-bin  log-error  logs  log-slow  mysql-pid  tmp
cd data/
cd ../..
chown -R mysql.mysql mysql/

    6.初始化数据库

cd /usr/local/mysql
./scripts/mysql_install_db

    7.复制启动文件和启动登录

cp support-files/mysql.server /etc/init.d/mysqld
chmod u+x /etc/init.d/mysqld
service mysqld start
/usr/local/mysql/bin/mysql

F&Q

        在初始化数据库的时候报错

Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

        解决办法

yum install libaio -y

        线上使用的my.conf

#my.cnf
[client]
port            = 3306
socket          = /tmp/mysql.sock
default-character-set=utf8
[mysql]
#prompt="\\u@\\h:\p  \\R:\\m:\\s [\\d]>"
#tee=/mysql/data/query.log
default-character-set=utf8
no-auto-rehash
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /mysql/data
port = 3306
socket = /tmp/mysql.sock
event_scheduler = 0
#tmp
tmpdir=/mysql/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300
performance_schema = 0
#character set
character-set-server = utf8
open_files_limit = 65535
max_connections = 1000
max_connect_errors = 100000
lower_case_table_names = 1
skip-name-resolve = 1
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = /mysql/log-slow/slow.log
log-error = /mysql/log-error/error.log
log_warnings = 2
pid-file = /mysql/mysql-pid/mysql-pid
long_query_time = 1
#log-slow-admin-statements = 1
#log-queries-not-using-indexes = 1
log-slow-slave-statements = 1
slave-skip-errors=1032
#binlog
binlog_format = row
server-id = 10019
log-bin = /mysql/log-bin/mysql-bin
binlog_cache_size = 16M
max_binlog_size = 500M
max_binlog_cache_size = 2G
sync_binlog = 0
expire_logs_days = 6
#gtid
gtid_mode=on
enforce_gtid_consistency=1
binlog_gtid_simple_recovery=1
#binlog-do-db = stat
#binlog-do-db = misc
#binlog-ignore-db = mysql
#relay log
skip_slave_start = 1
max_relay_log_size = 1G
relay_log_purge = 1
relay_log_recovery = 1
log_slave_updates
#slave-skip-errors=1032,1053,1062
explicit_defaults_for_timestamp=1
#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 512M
sort_buffer_size = 64M
join_buffer_size = 64M
thread_cache_size = 256
query_cache_size = 256M
query_cache_type = 1
query_cache_limit = 4M
query_cache_min_res_unit = 512
thread_stack = 192K
tmp_table_size = 256M
key_buffer_size = 256M
read_buffer_size = 64M
read_rnd_buffer_size = 64M
bulk_insert_buffer_size = 64M
#myisam
myisam_sort_buffer_size = 512M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
#innodb
innodb_buffer_pool_size = 1G
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 128M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
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
[mysqld_safe]
#malloc-lib=/usr/local/mysql/lib/jmalloc.so 
nice=-19
open-files-limit=65535
[mysqldump]
quick
max_allowed_packet = 512M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout