MySQL 5.7安装最佳实践 1、环境准备 OS: CentOS Linux release 7.4.1708 (Core) for VMware MySQL: mysql-5.7.24-linux-glibc2.12-x86_64 2、安装包准备,依赖检查 建议从官方下载,下载地址为:https://dev.mysql.com/g
MySQL 5.7安装最佳实践
1、环境准备OS: CentOS Linux release 7.4.1708 (Core) for VMwareMySQL: mysql-5.7.24-linux-glibc2.12-x86_64
2、安装包准备,依赖检查建议从官方下载,下载地址为:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
也可以在linux系统中用wget命令下载:[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz[root@localhost ~]# md5sum mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz[root@localhost ~]# mkdir /opt/mysql[root@localhost ~]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql/[root@localhost ~]# cd /usr/local[root@localhost local]# ln -s /opt/mysql/mysql-5.7.24-linux-glibc2.12-x86_64/ mysql[root@localhost local]# ldd mysql/bin/mysqldlinux-vdso.so.1 => (0x00007ffc633bd000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff8b795d000)libaio.so.1 => /lib64/libaio.so.1 (0x00007ff8b775b000)libnuma.so.1 => /lib64/libnuma.so.1 (0x00007ff8b754e000)libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff8b7317000)libdl.so.2 => /lib64/libdl.so.2 (0x00007ff8b7113000)librt.so.1 => /lib64/librt.so.1 (0x00007ff8b6f0a000)libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff8b6c02000)libm.so.6 => /lib64/libm.so.6 (0x00007ff8b6900000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff8b66e9000)libc.so.6 => /lib64/libc.so.6 (0x00007ff8b6326000)/lib64/ld-linux-x86-64.so.2 (0x0000562f8aace000)libfreebl3.so => /lib64/libfreebl3.so (0x00007ff8b6123000)说明:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置,“=>”右边有值就可以了。
3、建立用户,目录规划,my.cnf文件配置[root@localhost local]# groupadd mysql[root@localhost local]# useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -MN mysql[root@localhost local]# chown -R mysql:mysql mysql[root@localhost local]# mkdir -p /data/mysql/mysql3306/{data,tmp,logs}[root@localhost local]# chown -R mysql:mysql /data/[root@localhost local]# vim /etc/my.cnf[client]port = 3306
[mysql]auto-rehashprompt="\\u@\\h [\\d]>"#pager="less -i -n -S"#tee=/opt/mysql/query.log
[mysqld]####: for globaluser =mysql # mysqlbasedir =/usr/local/mysql/ # /usr/local/mysql/datadir =/data/mysql/mysql3306/data # /usr/local/mysql/dataserver_id =1293306 # 0port =3306 # 3306character_set_server =utf8 # latin1explicit_defaults_for_timestamp =off # offlog_timestamps =systemdefault_time_zone ='+8:00' # utcsocket =/tmp/mysql3306.sock # /tmp/mysql.sockread_only = 1 # offsuper_read_only = 1skip_name_resolve =off # 0auto_increment_increment =1 # 1auto_increment_offset =1 # 1lower_case_table_names =1 # 0secure_file_priv = /tmp/ # nullopen_files_limit =65536 # 1024max_connections =1000 # 151thread_cache_size =64 # 9table_open_cache =81920 # 2000table_definition_cache =4096 # 1400table_open_cache_instances =64 # 16max_prepared_stmt_count =1048576 #
####: for binlogbinlog_format =row # rowlog_bin =/data/mysql/mysql3306/logs/mysql-bin # offbinlog_rows_query_log_events =on # offlog_slave_updates =on # offexpire_logs_days =7 # 0binlog_cache_size =65536 # 65536(64k)#binlog_checksum =none # CRC32sync_binlog =1 # 1slave-preserve-commit-order =ON #
####: for error-loglog_error =error.log # /usr/local/mysql/data/localhost.localdomain.err
general_log =off # offgeneral_log_file =general.log # hostname.log
####: for slow query logslow_query_log =on # offslow_query_log_file =slow.log # hostname.log#log_queries_not_using_indexes =on # offlong_query_time =1.000000 # 10.000000
####: for gtid#gtid_executed_compression_period =1000 # 1000gtid_mode =on # offenforce_gtid_consistency =on # off
####: for replicationskip_slave_start =1 #
#master_info_repository =table # file#relay_log_info_repository =table # fileslave_parallel_type =logical_clock # database | LOGICAL_CLOCKslave_parallel_workers =4 # 0#rpl_semi_sync_master_enabled =1 # 0#rpl_semi_sync_slave_enabled =1 # 0#rpl_semi_sync_master_timeout =1000 # 1000(1 second)#plugin_load_add =semisync_master.so ##plugin_load_add =semisync_slave.so #binlog_group_commit_sync_delay =100 # 500(0.05%秒)、默认值0binlog_group_commit_sync_no_delay_count = 10 # 0
####: for innodbinnodb_data_file_path =ibdata1:100M:autoextend # ibdata1:12M:autoextendinnodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextendinnodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_poolinnodb_log_group_home_dir =./ # ./innodb_log_files_in_group =3 # 2innodb_log_file_size =100M # 50331648(48M)innodb_file_per_table =on # oninnodb_online_alter_log_max_size =128M # 134217728(128M)innodb_open_files =65535 # 2000innodb_page_size =16k # 16384(16k)innodb_thread_concurrency =0 # 0innodb_read_io_threads =4 # 4innodb_write_io_threads =4 # 4innodb_purge_threads =4 # 4(垃圾回收)innodb_page_cleaners =4 # 4(刷新lru脏页)innodb_print_all_deadlocks =on # offinnodb_deadlock_detect =on # oninnodb_lock_wait_timeout =20 # 50innodb_spin_wait_delay =128 # 6innodb_autoinc_lock_mode =2 # 1innodb_io_capacity =200 # 200innodb_io_capacity_max =2000 # 2000#--------Persistent Optimizer Statisticsinnodb_stats_auto_recalc =on # oninnodb_stats_persistent =on # oninnodb_stats_persistent_sample_pages =20 # 20
innodb_change_buffer_max_size =25 # 25innodb_flush_neighbors =1 # 1#innodb_flush_method = #innodb_doublewrite =on # oninnodb_log_buffer_size =128M # 16777216(16M)innodb_flush_log_at_timeout =1 # 1innodb_flush_log_at_trx_commit =1 # 1innodb_buffer_pool_size =100M # 134217728(128M)innodb_buffer_pool_instances =4#--------innodb scan resistantinnodb_old_blocks_pct =37 # 37innodb_old_blocks_time =1000 # 1000#--------innodb read aheadinnodb_read_ahead_threshold =56 # 56 (0..64)innodb_random_read_ahead =OFF # OFF#--------innodb buffer pool stateinnodb_buffer_pool_dump_pct =25 # 25innodb_buffer_pool_dump_at_shutdown =ON # ONinnodb_buffer_pool_load_at_startup =ON # ONinnodb_flush_method = O_DIRECT
4、初始化安装,error日志查看[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize[root@localhost ~]# more /data/mysql/mysql3306/data/error.log没有error就表示初始化完成了。
5、启动,error日志查看[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &[root@localhost ~]# more /data/mysql/mysql3306/data/error.log没有error就表示初始化完成了。
6、配置环境变量,root密码修改,配置远程连接权限[root@localhost ~]# echo export PATH=$PATH:/usr/local/mysql/bin >>/etc/profile[root@localhost ~]# source /etc/profile[root@localhost ~]# more /data/mysql/mysql3306/data/error.log |grep password2018-12-28T09:56:30.709446+08:00 1 [Note] A temporary password is generated for root@localhost: K:5+d=MqRqlcroot用户的临时密码为:K:5+d=MqRqlc
[root@localhost ~]# mysql -S /tmp/mysql3306.sock -pEnter password: 【这里输入上面的临时密码】(unknown)@localhost [(none)]>set global super_read_only=0; set global read_only=0;(unknown)@localhost [(none)]>alter user user() identified by 'root';Query OK, 0 rows affected (0.05 sec)
root@localhost [(none)]>配置远程连接权限 略