美文网首页
单主机二进制部署mysql-8.0.19

单主机二进制部署mysql-8.0.19

作者: 古飞_数据 | 来源:发表于2021-08-05 09:26 被阅读0次
#!/bin/bash
# 时间:
# 项目:单主机二进制部署mysql
# 1.创建目录
mkdir -p /data/mysql/3308/data  &>/dev/null
# 2.创建用户
useradd -s /sbin/nologin -M mysql   &>/dev/null
# 3.下载并且解压软件包
mkdir -p /opt/src
cd /opt/src/
if [ ! -f "(mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz" ];then
    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
    tar xf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
    elif [ ! -d "mysql-8.0.19-linux-glibc2.12-x86_64" ];then
        tar xf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
    else
    echo "already exists"
fi
# 4.创建软链接
ln -s `pwd`/mysql-8.0.19-linux-glibc2.12-x86_64 /opt/mysql &>/dev/null
# 5.配置环境变量
cat >> /etc/profile << EOF
export PATH=/opt/mysql/bin:\$PATH
EOF

source /etc/profile
sleep 3
# 6.给目录授权
chown -R mysql:mysql /data/mysql/3308
chown -R mysql:mysql /opt/mysql
# 7.清理环境
yum -y remove `rpm -qa |grep mariadb` &>/dev/null
# 8.初始化数据库——没有密码
mysqld --initialize-insecure --user=mysql  --basedir=/opt/mysql  --datadir=/data/mysql/3308/data &>/dev/null
# 9.编写配置文件
cat >/data/mysql/3308/my.cnf <<EOF
[client]
port = 3308
socket = /tmp/mysql3308.sock
[mysql]
prompt="\u@\h [\d]>"
no-auto-rehash
[mysqld]
user = mysql
basedir = /opt/mysql
datadir = /data/mysql/3308/data
port = 3308
socket = /tmp/mysql3308.sock
event_scheduler = 0

tmpdir = /data/mysql/3308/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300

#character set
character-set-server = utf8mb4

open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000

#logs
log-output=file
slow_query_log = 1
slow_query_log_file = slow.log
log-error = error.log
pid-file = mysql.pid
long_query_time = 1

log-slow-slave-statements = 1

#binlog
binlog_format = row
server-id = 3308
log-bin = /data/mysql/3308/logs/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 256M
max_binlog_cache_size = 100M
sync_binlog = 0
#expire_logs_days = 10
binlog_expire_logs_seconds = 864000
log_bin_trust_function_creators = 1

gtid-mode = on
enforce_gtid_consistency = on

#relay log
skip_slave_start = 1
max_relay_log_size = 128M
relay_log_purge = 1
relay_log_recovery = 1
relay-log=relay-bin
relay-log-index=relay-bin.index
log_slave_updates

#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 128k
join_buffer_size = 128k
thread_cache_size = 200
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 = 1

#innodb
innodb_buffer_pool_size = 300M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:12M;ibdata2:100M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_io_capacity = 2000
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 0
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_print_all_deadlocks = on
innodb_deadlock_detect = on
innodb_lock_wait_timeout = 30

##for performance_schema
performance_schema                                         = on
performance_schema_consumer_global_instrumentation         = on    # on
performance_schema_consumer_thread_instrumentation         = on    # on
performance_schema_consumer_events_stages_current          = on     # off
performance_schema_consumer_events_stages_history          = on     # off
performance_schema_consumer_events_stages_history_long     =off
performance_schema_consumer_statements_digest              = on
performance_schema_consumer_events_statements_current      = on
performance_schema_consumer_events_statements_history      = on
performance_schema_consumer_events_statements_history_long = off
performance_schema_consumer_events_waits_current           = on
performance_schema_consumer_events_waits_history           = on
performance_schema_consumer_events_waits_history_long      = off
performance-schema-instrument                              ='memory/%=COUNTED'
EOF
# 10.配置启动脚本
mkdir /data/mysql/3308/logs -p
mkdir /data/mysql/3308/tmp -p
chown -R mysql:mysql /data/mysql/3308
cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql/3308/my.cnf
LimitNOFILE = 65536
EOF
# 11.启动mysql
systemctl daemon-reload
systemctl start mysqld.service
systemctl status mysqld.service
mysql -V

# 11.密码修改
# mysqladmin -uroot -p password 123456
# ================================脚本结束================================

部署第二个实例

mkdir -p /data/mysql/3309/data
mkdir -p /data/mysql/3309/logs 
mkdir -p /data/mysql/3309/tmp 

chown -R mysql:mysql /data/mysql/3309


mysqld --initialize-insecure --user=mysql  --basedir=/opt/mysql  --datadir=/data/mysql/3309/data

cat >/data/mysql/3309/my.cnf <<EOF
[client]
port = 3309
socket = /tmp/mysql3309.sock
[mysql]
prompt="\u@\h [\d]>"
no-auto-rehash
[mysqld]
user = mysql
basedir = /opt/mysql
datadir = /data/mysql/3309/data
port = 3309
socket = /tmp/mysql3309.sock
event_scheduler = 0

tmpdir = /data/mysql/3309/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300

#character set
character-set-server = utf8mb4

open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000

#logs
log-output=file
slow_query_log = 1
slow_query_log_file = slow.log
log-error = error.log
pid-file = mysql.pid
long_query_time = 1

log-slow-slave-statements = 1

#binlog
binlog_format = row
server-id = 3309
log-bin = /data/mysql/3309/logs/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 256M
max_binlog_cache_size = 100M
sync_binlog = 0
#expire_logs_days = 10
binlog_expire_logs_seconds = 864000
log_bin_trust_function_creators = 1

gtid-mode = on
enforce_gtid_consistency = on

#relay log
skip_slave_start = 1
max_relay_log_size = 128M
relay_log_purge = 1
relay_log_recovery = 1
relay-log=relay-bin
relay-log-index=relay-bin.index
log_slave_updates

#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 128k
join_buffer_size = 128k
thread_cache_size = 200
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 = 1

#innodb
innodb_buffer_pool_size = 300M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:12M;ibdata2:100M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_io_capacity = 2000
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 0
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_print_all_deadlocks = on
innodb_deadlock_detect = on
innodb_lock_wait_timeout = 30

##for performance_schema
performance_schema                                         = on
performance_schema_consumer_global_instrumentation         = on    # on
performance_schema_consumer_thread_instrumentation         = on    # on
performance_schema_consumer_events_stages_current          = on     # off
performance_schema_consumer_events_stages_history          = on     # off
performance_schema_consumer_events_stages_history_long     =off
performance_schema_consumer_statements_digest              = on
performance_schema_consumer_events_statements_current      = on
performance_schema_consumer_events_statements_history      = on
performance_schema_consumer_events_statements_history_long = off
performance_schema_consumer_events_waits_current           = on
performance_schema_consumer_events_waits_history           = on
performance_schema_consumer_events_waits_history_long      = off
performance-schema-instrument                              ='memory/%=COUNTED'
EOF

/opt/mysql/bin/mysqld_safe --defaults-file=/data/mysql/3309/my.cnf &

相关文章

网友评论

      本文标题:单主机二进制部署mysql-8.0.19

      本文链接:https://www.haomeiwen.com/subject/gqwuvltx.html