MySQL5.7单实例二进制包安装方法
MySQL5.7单实例二进制包安装方法
一、环境
OS: CentOS release 6.9 (Final)
MySQL: mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
说明:类似的操作系统也可以的。为了方便起见,涉及到的操作,均可以直接粘贴复制,比较直观快捷的实施,我没有将带有命令行的截图或者文字粘贴出来。
可能会与路径有关,本文档是基于实践而记录下的,可能与你的环境有所不同,请遇到问题,具体分析查找资料。
二、准备工作
2.1、修改主机名称
hostname myserver
sed -i 's/shell/myserver/' /etc/sysconfig/network
2.2、关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce
2.3、修改系统内核参数
cat >> /etc/sysctl.conf <<EOF
fs.file-max=
fs.aio-max-nr =
kernel.sem =
kernel.shmmax =
kernel.shmall =
kernel.shmmni =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_mem =
net.core.wmem_default =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_max =
net.ipv4.tcp_rmem =
net.ipv4.tcp_wmem =
net.core.netdev_max_backlog =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_keepalive_time =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_syncookies =
net.ipv4.tcp_timestamps =
net.ipv4.conf.default.accept_source_route =
vm.swappiness=
EOF # 使其生效
sysctl -p
2.4、安装依赖包
# 需要配置yum yum clean all
yum -y update
yum -y install gd libxml2-devel libjpeg-devel libpng-devel net-snmp-devel wget telnet vim zip unzip
yum -y install curl-devel libxslt-devel pcre-devel libjpeg libpng libcurl4-openssl-dev
yum -y install libcurl-devel libcurl freetype-config freetype freetype-devel unixODBC libxslt
yum -y install libtool openssl-devel
yum -y install perl-devel perl-ExtUtils-Embed
yum -y install ncurses-devel.x86_64 openldap-devel.x86_64 lrzsz openssh-clients gcc-g77 bison
yum -y install libmcrypt libmcrypt-devel mhash mhash-devel bzip2 bzip2-devel
yum -y install ntpdate rsync svn patch iptables iptables-services
yum -y install libevent libevent-devel cyrus-sasl cyrus-sasl-devel
yum -y install gd-devel libmemcached-devel memcached git libssl-devel libyaml-devel auto
yum -y install gcc gcc-c++ make autoconf automake ncurses-devel ncurses cmake libaio libaio-devel boost
yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl perl-devel
yum -y groupinstall "Server Platform Development" "Development tools"
yum -y groupinstall "Development tools"
2.5、基本初始化
mkdir -p /opt/mysql
cd /opt/mysql/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.7.-linux-glibc2.-x86_64.tar.gz
cd /usr/local/
ln -s /opt/mysql/mysql-5.7.-linux-glibc2.-x86_64 mysql
2.6、创建所需要的目录
mkdir -p /gomeo2o/data/mysql/mysql_3306/{data,logs,tmp}
mkdir -p /data/backup/
# 更改权限
groupadd mysql
useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
2.7、创建配置文件
# 排除干扰因素 if [ -f /etc/my.cnf ]; then
mv /etc/my.cnf /etc/my.cnf.bak
fi cat >/gomeo2o/data/mysql/mysql_3306/my_3306.cnf <<EOF
# my_3306.cnf
[client]
port =
socket = /gomeo2o/data/mysql/mysql_3306/tmp/mysql_3306.sock [mysql]
#prompt="\u@\h:\p \R:\m:\s [\d]>"
#tee=/gomeo2o/data/mysql/mysql_3306/data/query.log
#prompt="\u@\h:\p \R:\m:\s [\d]>"
prompt = "[\u@\h][\d]>\_"
connect_timeout =
no-auto-rehash [mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /gomeo2o/data/mysql/mysql_3306/data
port =
socket = /gomeo2o/data/mysql/mysql_3306/tmp/mysql_3306.sock #timeout
interactive_timeout =
wait_timeout = #character set
character-set-server = utf8 open_files_limit =
max_connections =
max_connect_errors = skip-name-resolve =
disable-partition-engine-check=
#logs
log-output=file
slow_query_log =
slow_query_log_file = /gomeo2o/data/mysql/mysql_3306/logs/mysql_3306_slow.log
log-error = /gomeo2o/data/mysql/mysql_3306/logs/mysql_3306_error.log
log_error_verbosity =
pid-file = mysql_3306.pid
long_query_time =
#log-slow-admin-statements =
#log-queries-not-using-indexes =
log-slow-slave-statements = #tmp
tmpdir=/gomeo2o/data/mysql/mysql_3306/tmp
event_scheduler =
performance_schema = on
max_allowed_packet = 32M
character_set_server = utf8mb4
#character_set_server = utf8
default-time-zone = system
default-storage-engine = InnoDB
#bind_address = 172.16.151.248
explicit_defaults_for_timestamp = #binlog
binlog_format = row
server-id =
log-bin = /gomeo2o/data/mysql/mysql_3306/logs/mysql-bin
log-bin-index = /gomeo2o/data/mysql/mysql_3306/logs/mysql-bin.index
binlog_cache_size = 4M
max_binlog_size = 1G
max_binlog_cache_size = 2G
sync_binlog =
expire_logs_days =
#replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.% #relay log
skip_slave_start =
max_relay_log_size = 1G
relay_log_purge =
relay_log_recovery =
log_slave_updates
#slave-skip-errors=,, explicit_defaults_for_timestamp=
#buffers & cache
table_open_cache =
table_definition_cache =
table_open_cache =
max_heap_table_size = 96M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size =
query_cache_size =
query_cache_type =
query_cache_limit = 256K
query_cache_min_res_unit =
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 = #innodb
innodb_buffer_pool_size = 10G
innodb_buffer_pool_instances =
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit =
innodb_log_buffer_size = 64M
innodb_log_file_size = 500M
innodb_log_files_in_group =
innodb_max_dirty_pages_pct =
innodb_file_per_table =
innodb_rollback_on_timeout
innodb_status_file =
innodb_io_capacity =
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay-log-info-repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
binlog_row_image=FULL # Two-Master configure
#server-
#auto-increment-offset =
#auto-increment-increment = #server-
#auto-increment-offset =
#auto-increment-increment = # semi sync replication settings #
#plugin_dir = /usr/local/mysql/lib/mysql/plugin
#plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
plugin_dir = /usr/local/mysql/lib/plugin #官方版本的路径
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #官方版本的路径 loose_rpl_semi_sync_master_enabled = on
loose_rpl_semi_sync_master_timeout =
loose_rpl_semi_sync_master_trace_level =
loose_rpl_semi_sync_master_wait_no_slave = on
loose_rpl_semi_sync_slave_enabled = on
loose_rpl_semi_sync_slave_trace_level =
loose_rpl_semi_sync_master_enabled =
loose_rpl_semi_sync_slave_enabled =
loose_rpl_semi_sync_master_timeout =
loose_rpl_semi_sync_master_wait_for_slave_count=
loose_rpl_semi_sync_master_wait_point=AFTER_SYNC slave_preserve_commit_order =
slave_transaction_retries =
log_timestamps = system
show_compatibility_56 = on
slave_parallel_workers =
slave_parallel_type = LOGICAL_CLOCK loose_innodb_numa_interleave =
innodb_buffer_pool_dump_pct =
innodb_page_cleaners =
innodb_undo_log_truncate =
innodb_max_undo_log_size = 2G
innodb_purge_rseg_truncate_frequency =
#transaction_write_set_extraction = MURMUR32
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE ##
transaction_isolation = READ-COMMITTED
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,ONLY_FULL_GROUP_BY" # group replication
##log-bin = mysql
##server-id =
##gtid_mode = ON
##enforce_gtid_consistency = ON
##master_info_repository = TABLE
##relay-log-info-repository = TABLE
##binlog_checksum = NONE
##log_slave_updates = ON
##binlog_format = row
##transaction_write_set_extraction=XXHASH64
##loose-group_replication_group_name = '3db33b36-0e51-409f-a61d-c99756e90154'
##loose-group_replication_start_on_boot = off
##loose-group_replication_local_address= "10.125.141.62:23306" # 不能超过5位数字
##loose-group_replication_group_seeds= "10.125.141.62:23306,10.125.141.62:23307,10.125.141.62:23308" # 不能超过5位数字
##loose-group_replication_bootstrap_group= off
# loose-group_replication_single_primary_mode=FALSE ###本次搭建的是mutil_mode
# loose-group_replication_enforce_update_everywhere_checks= TRUE [mysqld_safe]
#malloc-lib=/usr/local/mysql/lib/jmalloc.so
nice=-
open-files-limit=
EOF
2.8、初始化数据库
chown -R mysql.mysql /gomeo2o/data
chown -R mysql.mysql /data/backup/
chmod -R /data/backup/
/usr/local/mysql/bin/mysqld --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --initialize-insecure &
# 查看日志
# tail -f /gomeo2o/data/mysql/mysql_3306/logs/error.log
2.9、启动数据库推荐做法
/usr/local/mysql/bin/mysqld_safe --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf &
2.10、进入mysql,修改账号
/usr/local/mysql/bin/mysql -uroot -p -P3306 -S /gomeo2o/data/mysql/mysql_3306/tmp/mysql_3306.sock set sql_log_bin = 0;
create user 'rpl_user'@'%';
grant replication slave on *.* to 'rpl_user'@'10.%' identified by 'BR8KLwXCKHgN';
update mysql.user set authentication_string=password('rootpwd2017') where user='root';
flush privileges;
set sql_log_bin = 1;
reset master ; reset slave all;
exit;
######## 配置主从复制方法开始 ########
# CHANGE MASTER TO MASTER_HOST='172.16.1.10',MASTER_USER='rpl_user',
# MASTER_PASSWORD='BR8KLwXCKHgN',MASTER_PORT=3306,
# MASTER_CONNECT_RETRY=10,MASTER_AUTO_POSITION =1;
#
# start slave;
# show slave status\G;
######## 配置主从复制方法结束 ########
2.12、设置便捷使用方式
/usr/local/mysql/bin/mysql_config_editor set --host=localhost --login-path=3306_localhost_login --user=root --port=3306 --password --socket=/gomeo2o/data/mysql/mysql_3306/tmp/mysql_3306.sock # 请输入root密码: rootpwd2017 alias mysql.3306.start='/usr/local/mysql/bin/mysqld_safe --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf &'
alias mysql.3306.stop='/usr/local/mysql/bin/mysqladmin --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login shutdown &'
alias mysql.3306.login='/usr/local/mysql/bin/mysql --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login'
# alias mysql.3306.all_dump='/usr/local/mysql/bin/mysqldump --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login -R -E --triggers -e --max_allowed_packet=16777216 --net_buffer_length=16384 --default-character-set=utf8mb4 --set-gtid-purged=OFF --master-data=2 --single-transaction --all-databases --quick | gzip >/data/backup/all_database_bak_`date +%Y-%m-%d_%H_%M_%S`.sql.gz' cat >>/root/.bashrc <<EOF
alias mysql.3306.start='/usr/local/mysql/bin/mysqld_safe --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf &'
alias mysql.3306.stop='/usr/local/mysql/bin/mysqladmin --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login shutdown &'
alias mysql.3306.login='/usr/local/mysql/bin/mysql --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login'
# alias mysql.3306.all_dump='/usr/local/mysql/bin/mysqldump --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login -R -E --triggers -e --max_allowed_packet=16777216 --net_buffer_length=16384 --default-character-set=utf8mb4 --set-gtid-purged=OFF --master-data=2 --single-transaction --all-databases --quick | gzip >/data/backup/all_database_bak_`date +%Y-%m-%d_%H_%M_%S`.sql.gz'
EOF source /root/.bash_profile cat >>/etc/rc.local <<EOF
# alias mysql.3306.start='/usr/local/mysql/bin/mysqld_safe --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf &'
# alias mysql.3306.stop='/usr/local/mysql/bin/mysqladmin --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login shutdown &'
# alias mysql.3306.login='/usr/local/mysql/bin/mysql --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login'
## alias mysql.3306.all_dump='/usr/local/mysql/bin/mysqldump --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login -R -E --triggers -e --max_allowed_packet=16777216 --net_buffer_length=16384 --default-character-set=utf8mb4 --set-gtid-purged=OFF --master-data=2 --single-transaction --all-databases --quick | gzip >/data/backup/all_database_bak_`date +%Y-%m-%d_%H_%M_%S`.sql.gz'
EOF
3、gtid故障处理一例
############################################# gtid故障处理开始 #############################################
# 模拟在从库删除库,然后再主库删除该库,报如下错误
# Last_SQL_Error: Error 'Can't drop database 'db1'; database doesn't exist' on query. Default database: 'db1'. Query: 'drop database db1'
# Replicate_Ignore_Server_Ids:
# Master_Server_Id: 623306
# Master_UUID: 11526eb0-fcbc-11e6-af7d-005056b937e2
# Master_Info_File: mysql.slave_master_info
# SQL_Delay: 0
# SQL_Remaining_Delay: NULL
# Slave_SQL_Running_State:
# Master_Retry_Count: 86400
# Master_Bind:
# Last_IO_Error_Timestamp:
# Last_SQL_Error_Timestamp: 170227 15:44:06
# Master_SSL_Crl:
# Master_SSL_Crlpath:
# Retrieved_Gtid_Set: 11526eb0-fcbc-11e6-af7d-005056b937e2:1-2
# Executed_Gtid_Set: 11526eb0-fcbc-11e6-af7d-005056b937e2:1,
# 1760a7a5-fcbc-11e6-8f14-005056b90358:1
# Auto_Position: 1
# Replicate_Rewrite_DB:
# Channel_Name:
# Master_TLS_Version:
#
# 处理方法:
# stop slave;
# set gtid_next='11526eb0-fcbc-11e6-af7d-005056b937e2:2';
# begin;
# commit;
# set gtid_next='automatic';
# start slave;
# show slave status\G;
############################################# gtid故障处理结束 #############################################
四、配套卸载删除脚本
[root@myserver mysql]# sh Uninstall_mysql.sh
请注意,你正在关闭mysqld服务!!!
[Y/N]: Y
你已经选择关闭mysqld服务操作,即将关闭!!! mysql卸载完毕... [root@myserver mysql]# chmod +x Uninstall_mysql.sh
cat Uninstall_mysql.sh
#!/bin/bash
mysqld_count=`ps -ef|grep -v 'grep' | grep mysqld |wc -l`
echo " 请注意,你正在关闭mysqld服务!!!" function shutdown_and_delete_files () {
if [ "${mysqld_count}" -eq ]; then
/usr/local/mysql/bin/mysqladmin --defaults-file=/gomeo2o/data/mysql/mysql_3306/my_3306.cnf --login-path=3306_localhost_login shutdown &
fi # 模拟打印进度条
for i in {..}
do
echo -n " $i"
sleep
done # 删除链接文件 if [ -L /usr/local/mysql ]; then
unlink /usr/local/mysql
fi echo "" # 删除相应的文件 rm -rf /opt/mysql/mysql-5.7.-linux-glibc2.-x86_64
rm -rf /etc/my.cnf.bak
rm -rf /data/backup/*
cp /root/.bashrc /root/.bashrc.bak
cp /etc/rc.local /etc/rc.local.bak
sed -i '/mysql.3306/d' /root/.bashrc
sed -i '/mysql.3306/d' /etc/rc.local
rm -rf /gomeo2o/data/*
echo "mysql卸载完毕..."
echo ""
} read -p "[Y/N]: " answer
case "${answer}" in
Y|y|YES|yes)
echo "你已经选择关闭mysqld服务操作,即将关闭!!!"
shutdown_and_delete_files
;;
N|n|NO|no)
echo "你已经取消关闭mysqld服务操作..."
;;
*)
#echo "Error choice"
echo "Useage: [Y|YES|y|yes N|NO|n|no]"
;;
esac
MySQL5.7单实例二进制包安装方法的更多相关文章
- CentOS 6 自定义单实例 二进制方式 安装mariadb-5.5.59
系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 1.去官网下载适合的二进制包 http://mariadb.org/ mariadb ...
- Mysql5.6二进制包安装方法
1.Download MySQL Community Server 访问mysql官方网站转到下载页https://dev.mysql.com/downloads/mysql/5.6.html#dow ...
- Linux下MySQL5.7.18二进制包安装(无默认配置文件my_default.cnf)
最新在学习MySQL,纯新手,对Linux了解的也不多,因为是下载的最新版的MySQL(MySQL5.7.18)二进制包,CentOS7.2下测试安装,方便以后折腾.大概步骤如下,安装删除反复折腾了几 ...
- Linux下MySQL5.7.18二进制包安装(手动添加配置文件my_default.cnf)
本文出处:http://www.cnblogs.com/wy123/p/6815049.html 最新在学习MySQL,纯新手,对Linux了解的也不多,因为是下载的最新版的MySQL(MySQL5. ...
- 二进制包安装MySQL数据库
1.1二进制包安装MySQL数据库 1.1.1 安装前准备(规范) [root@Mysql_server ~]# mkdir -p /home/zhurui/tools ##创建指定工具包存放路径 [ ...
- kubernetes实践之一:kubernetes二进制包安装
kubernetes二进制部署 1.环境规划 软件 版本 Linux操作系统 CentOS Linux release 7.6.1810 (Core) Kubernetes 1.9 Docker 18 ...
- MySQL二进制包安装
mysql的安装有多种方法,这里就介绍一下二进制包安装. [root@node1 ~]# tar xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar [root@n ...
- MySQL二进制包安装及启动问题排查
环境部署:VMware10.0+CentOS6.9(64位)+MySQL5.7.19(64位)一.操作系统调整 # 更改时区 .先查看时区 [root@localhost ~]# date -R Tu ...
- Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...
随机推荐
- Nginx 模块分类
L:34
- visual studio 显示引用关系 作者更改项
visual studio 2017中,每个类或者方法顶部会显示此方法的引用关系或者作者更改项:这个功能极大了提高了我们代码的定位效率:不过有时候却发现每一行代码都有,会增加我们屏幕显示内容,有时候看 ...
- Ionic生成的App安装在手机上后无法联网的解决方案
在Ionic中使用inappbrowser.themeablebrowser 组件打开网页,刚开始是好的,后来不知添加什么插件,导致了安装在手机上以后没有网络访问权限. 尝试了很多,最后才发现,此时, ...
- Tarjan求无向图割点、桥详解
tarjan算法--求无向图的割点和桥 一.基本概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不 ...
- STL的相关知识
STL简介: STL(Standard Template Library,标准模版库)以模板类和模版函数的形式为程序员提供了各种数据结构和算法的实现,程序员通过利用STL,可以在代码空间.执行时间和编 ...
- bzoj4240有趣的家庭菜园(贪心+逆序对)
对家庭菜园有兴趣的JOI君每年在自家的田地中种植一种叫做IOI草的植物.JOI君的田地沿东西方向被划分为N个区域,由西到东标号为1~N.IOI草一共有N株,每个区域种植着一株.在第i个区域种植的IOI ...
- 存在重复元素 II
题目描述 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: n ...
- String:字符串常量池
String:字符串常量池 作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池: 字 ...
- 【洛谷P2257】YY的GCD
题目大意:有 \(T\) 个询问,每个询问给定 \(N, M\),求 \(1\le x\le N, 1\le y\le M\) 且 \(gcd(x, y)\) 为质数的 \((x, y)\) 有多少对 ...
- 跟我一起写一个hello-world react组件并发布到npm
第一步:初始化我们的配置 $ mkdir react-hello-world $ cd react-hello-world/ $ npm init -y 修改我们的package.json文件 //p ...