マルチソースのインストールMySQL5.7.28 CentOS7.5の例

環境のニーズ、テーブルサイズを区別するすべてのインスタンスのテーブルので、別の例では区別しません。展開パラメータも多くの情報を来る、また不適切な、してくださいアドバイス、ありがとうございました場合は、私が運転中に、あなたの参考のために記録展開するいくつかのピットを、遭遇!
次のように記録された特定の展開:

  1. 準備するインストール環境
    1.1ホスト環境を準備する
    1.1.1。HOST
    各ホスト(/ etc / hostsファイル)は、/ etc / hostsファイルにホスト名を$ HOST_IP追加設定されたホストを。

[root@~]# echo " 192.168.8.100 multidb" >> /etc/hosts

1.1.2。閉じるselinuxを

[root@~]# sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
[root@~]# setenforce 0

1.1.3。ホストのシステム時刻、タイムゾーン、システム言語
がゾーンを変更

[root@~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

システムを変更するロケール

[root@~]# echo 'LANG="en_US.UTF-8"' >> /etc/profile 
[root@~]# source /etc/profile

ホスト構成NTPの時刻同期

[root@~]# yum -y install ntp
[root@~]# systemctl enable ntpd
[root@~]# systemctl start ntpd
[root@~]# echo 'server ntp1.aliyun.com' >> /etc/ntp.conf
[root@~]# echo 'server ntp2.aliyun.com' >> /etc/ntp.conf
  1. MySQLのインストールと展開
    2.1環境浄化
    [root@~]# rpm -e --nodeps mariadb-libs-*
    [root@~]# rpm -e mysql*
    [root@~]# yum list installed | grep mariadb     ---确认已经清理干净
    [root@~]# yum list installed | grep mysql       ---确认已经清理干净
    [root@~]# mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak

    2.2インストールの依存関係

[root@~]# yum -y install bzr zlib-devel gcc-c++ ncurses ncurses-devel libev make cmake gcc autoconf automake zlib libxml libgcrypt libtool bison perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5 rsync perl-Data-Dumper net-tools wget vim openssl openssl-devel

2.3ユーザーの作成

[root@~]# groupadd mysql
[root@~]# useradd mysql -g mysql -s /sbin/nologin -M

2.4コンフィギュレーションシステムのカーネルパラメータ

[root@~]# vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
vm.swappiness = 0
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
kernel.shmmax = 25769803774
kernel.shmmni = 4096
kernel.shmall = 16777216
kernel.sem = 1010 129280 1010 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
[root@~]# modprobe br_netfilter
[root@~]# sysctl -p

2.5システム・リソース制限を変更

[root@~]# vi /etc/security/limits.conf
mysql  soft    nproc   65535
mysql  hard    nproc   65535
mysql  soft    nofile  65535
mysql  hard    nofile  65535
mysql  soft    stack   10240

2.6変更の環境変数

[root@~]# vi /etc/profile
if [ $USER = "mysql" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@~]# source /etc/profile

2.7 MySQLのマルチインスタンスインストール
(実際の展開経路変更に基づいて)ソフトウェアのインストールディレクトリの作成2.7.1を

[root@~]# mkdir -pv /data/mysql/{3306,3307}
[root@~]# mkdir -v /data/mysql/3306/{logs,data,binlog}
[root@~]# mkdir -v /data/mysql/3307/{logs,data,binlog}

2.7.2。ソースパッケージのダウンロードをブースト

[root@opt~]# cd /opt
[root@opt~]# wget -c  http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
[root@opt~]# tar zxvf boost_1_59_0.tar.gz
[root@opt~]# mv boost_1_59_0 /usr/local/boost

2.7.3。コンパイラMySQL5.7.28をダウンロードしてインストールし
ます。[root @オプト〜]#のCD / opt```

[ルート@オプト〜]#wgetの-c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz
[ルート@オプト〜]#タールzxvfはmysql-ブースト-5.7.28.tar.gz
[ルート@オプト〜]#でcd mysqlの-5.7.28
[[email protected]~]#のcmakeの。-DCMAKE_INSTALL_PREFIX =は/ usr / local / mysqlの\
DMYSQL_DATADIR =は/ usr / local / mysqlの/データ\
DMYSQL_UNIX_ADDR =は/ usr / local / mysqlのを/ tmp /にmysql.sock \
DDEFAULT_CHARSET = UTF8 \
DDEFAULT_COLLATION = utf8_bin \
DEXTRA_CHARSETS =すべて\
DENABLED_LOCAL_INFILE = ON \
DWITH_INNOBASE_STORAGE_ENGINE = 1 \
DWITH_FEDERATED_STORAGE_ENGINE = 1 \
DWITH_BLACKHOLE_STORAGE_ENGINE = 1 \
DWITHOUT_EXAMPLE_STORAGE_ENGINE = 1 \
DWITHOUT_PARTITION_STORAGE_ENGINE = 1 \
DWITH_FAST_MUTEXES = 1 \
DWITH_SSL =システム\
DWITH_ZLIB =バンドル\
DWITH_EDITLINE =バンドル\
DWITH_BOOST =は/ usr / local /ブースト\
DENABLED_LOCAL_INFILE = 1 \
DWITH_READLINE = 1 \
DWITH_EMBEDDED_SERVER = 1 \
DWITH_DEBUG = 0
[[email protected]~]#メイク
[ルート〜]のmysql-5.7.28 @#をインストールします

2.7.4.  配置MySQL环境变量

[ルート@〜]#エコーの輸出PATH =は/ usr / local / mysqlの/ binに:$ PATHに">> / etc / profileを
[ルート@〜]#テール-1 / etc / profileを
[ルート@〜]#ソース/ etc / profileを

2.7.5.  MySQL参数配置
(1)server_id=3306与server_id=3307数值请根据实际配置,注意配置的id值与局域网内其他各实例所配置的数值不可以冲突;
(2)max_connections=1000配置MySQL数据库的最大连接数,根据实际需要配置;
(3)以下参数仅供参考,部署时根据实际需要添加配置,两份配置文件全部内容如下
**3306配置文件内容:**

[ルート@〜]#vimの/data/mysql/3306/my3306.cnf
[クライアント]
ポート= 3306
ソケット= /data/mysql/3306/mysql3306.sock

【のMySQL]
プロンプト= "\ U @ jsshapp \ R:\ M:\ S [\ D]>"
非自己焼き直し

[mysqldを】
ユーザ= MySQLの
ポート= 3306
シンボリックリンク= 0
BASEDIR =は/ usr / local / MySQLの
DATADIR = /データ/ MySQLの/ 3306 /データ/
ソケット= /data/mysql/3306/mysql3306.sock
PIDファイル= /データ/ MySQLの/ 3306 / mysqld3306.pid
SERVER_ID = 3306
character_set_server = UTF8
MAX_CONNECTIONS = 1000
skip_name_resolve = 1
open_files_limit = 65536
thread_cache_size = 64
table_open_cacheの= 4096
table_definition_cache = 1024
table_open_cache_instances = 64
max_prepared_stmt_count = 1048576
explicit_defaults_for_timestamp =真
log_timestamps =システム

binlog_format =行
log_bin = /データ/ MySQLの/ 3306 /バイナリログ/ MySQLのビン
にbinlog_rows_query_log_events =
expire_logs_days = 7
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
sync_binlog = 1

slow_query_log =上
slow_query_log_file = /data/mysql/3306/data/slow.log
ログエラー= /data/mysql/3306/logs/error.log
#log_queries_not_using_indexes =上
long_query_time = 1.000000

gtid_mode =上
enforce_gtid_consistency =上

default_storage_engine = InnoDBの
default_tmp_storage_engine = InnoDBの
innodb_data_file_path = ibdata1と:1024M:自動拡張
innodb_temp_data_file_path = ibtmp1:12M:自動拡張
innodb_buffer_pool_filename = ib_buffer_pool
innodb_log_files_in_group = 3
innodb_log_file_size = 512M
innodb_online_alter_log_max_size = 1024M
innodb_open_files = 4096
innodb_page_size = 32K
innodb_thread_concurrency = 0
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_print_all_deadlocks = ON
innodb_lock_wait_timeout = 20
innodb_spin_wait_delay = 128
innodb_autoinc_lock_mode = 2
innodb_io_capacity = 200
innodb_io_capacity_max = 2000
#innodb_flush_neighbors =
innodb_log_buffer_size = 8M
innodb_flush_log_at_timeout = 1
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 1024M
innodb_buffer_pool_instances = 4
自動コミット= 1
innodb_buffer_pool_dump_pct = 25
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_load_at_startup = ON

[mysqldumpを]
素早い
するmax_allowed_pa​​cket = 32M


**3307配置(有添加lower_case_table_names)文件内容:**

[ルート@〜]#vimの/data/mysql/3307/my3307.cnf
[クライアント]
ポート= 3307
ソケット= /data/mysql/3307/mysql3307.sock

【のMySQL]
プロンプト= "\ U @ jsshapp \ R:\ M:\ S [\ D]>"
非自己焼き直し

[mysqldを】
ユーザ= MySQLの
ポート= 3307
シンボリックリンク= 0
はlower_case_table_names = 1
BASEDIR =は/ usr / local / MySQLの
DATADIR = /データ/ MySQLの/ 3307 /データ/
ソケット= /data/mysql/3307/mysql3307.sock
pid-ファイル= /data/mysql/3307/mysqld3307.pid
SERVER_ID = 3307
character_set_server = UTF8
MAX_CONNECTIONS = 1000
skip_name_resolve = 1
open_files_limit = 65536
thread_cache_size = 64
table_open_cacheの= 4096
table_definition_cache = 1024
table_open_cache_instances = 64
max_prepared_stmt_count = 1048576
explicit_defaults_for_timestamp =真
log_timestamps =システム

binlog_format =行
log_bin = /データ/ MySQLの/ 3307 /バイナリログ/ MySQLのビン
にbinlog_rows_query_log_events =
expire_logs_days = 7
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
sync_binlog = 1

slow_query_log =上
slow_query_log_file = /data/mysql/3307/data/slow.log
ログエラー= /data/mysql/3307/logs/error.log
#log_queries_not_using_indexes =上
long_query_time = 1.000000

gtid_mode =上
enforce_gtid_consistency =上

default_storage_engine = InnoDBの
default_tmp_storage_engine = InnoDBの
innodb_data_file_path = ibdata1と:1024M:自動拡張
innodb_temp_data_file_path = ibtmp1:12M:自動拡張
innodb_buffer_pool_filename = ib_buffer_pool
innodb_log_files_in_group = 3
innodb_log_file_size = 512M
innodb_online_alter_log_max_size = 1024M
innodb_open_files = 4096
innodb_page_size = 32K
innodb_thread_concurrency = 0
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_print_all_deadlocks = ON
innodb_lock_wait_timeout = 20
innodb_spin_wait_delay = 128
innodb_autoinc_lock_mode = 2
innodb_io_capacity = 200
innodb_io_capacity_max = 2000
#innodb_flush_neighbors =
innodb_log_buffer_size = 8M
innodb_flush_log_at_timeout = 1
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 1024M
innodb_buffer_pool_instances = 4
自動コミット= 1
innodb_buffer_pool_dump_pct = 25
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_load_at_startup = ON

[mysqldumpを]
素早い
するmax_allowed_pa​​cket = 32M
[ルート@〜]#chownコマンド-R mysqlの:mysqlの/データ
[ルート@〜]#chownコマンド-R mysqlの:mysqlのは/ usr / local / mysqlの

2.7.6.  dbone实例初始化
   操作实例初始化

[ルート@〜]#のmysqld --defaults-ファイル= /データ/ mysqlの/ 3306 / my3306.cnf --initialize --user = mysqlの--basedir =は/ usr / local / mysqlの/ --datadir = /データ/ MySQLの/ 3306 /データ/

   生成ssl文件

[ルート@〜]#mysql_ssl_rsa_setup --user = mysqlの--basedir =は/ usr / local / mysqlの--datadir = /データ/ mysqlの/ 3306 /データ

   启动dbone实例

[ルート@〜]#mysqld_safeを--defaults-ファイル= /データ/ mysqlの/ 3306 / my3306.cnf --user = mysqlの&

   修改root密码

[ルート@〜]#以下/data/mysql/3306/logs/error.log|grep '仮パスワード'
[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3306/mysql3306.sock
入力してくださいパスワード:
'密码'によって識別されるのmysql> ALTERユーザー'ルート' @ 'localhostの';
MySQLの>フラッシュ権限;
MySQLの>終了。

   通过tcp/ip协议登陆mysql验证

[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3306/mysql3306.sock

   停止dbone实例

[ルート@〜]#mysqladminの-uroot -p -S /data/mysql/3306/mysql3306.sockシャットダウン
パスワードを入力します。

2.7.7.  dbtwo实例初始化
   操作实例初始化

[ルート@〜]#のmysqld --defaults-ファイル= /データ/ mysqlの/ 3307 / my3307.cnf --initialize --user = mysqlの--basedir =は/ usr / local / mysqlの/ --datadir = /データ/ MySQLの/ 3307 /データ/

   生成ssl文件

[ルート@〜]#mysql_ssl_rsa_setup --user = mysqlの--basedir =は/ usr / local / mysqlの--datadir = /データ/ mysqlの/ 3307 /データ

   启动dbtwo实例

[ルート@〜]#mysqld_safeを--defaults-ファイル= /データ/ mysqlの/ 3307 / my3307.cnf --user = mysqlの&

   修改root密码

[ルート@〜]#以下/data/mysql/3307/logs/error.log|grep '仮パスワード'
[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3307/mysql3307.sock
入力してくださいパスワード:
'密码'によって識別されるのmysql> ALTERユーザー'ルート' @ 'localhostの';
MySQLの>フラッシュ権限;
MySQLの>終了。

   通过tcp/ip协议登陆mysql验证

[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3307/mysql3307.sock

   停止dbtwo实例

[ルート@〜]#mysqladminの-uroot -p -S /data/mysql/3307/mysql3307.sockシャットダウン
パスワードを入力します。

2.7.8.  配置多实例系统启动脚本
   配置实例3306系统服务脚本

[ルート@〜]#vimの/etc/init.d/dbone
#/ binに/ shを!
#chkconfigという:2345年80 90
Linuxシステム上で動作するように考案さ#Simple dboneのMySQLのinit.dスクリプト

SOCK = "/データ/ mysqlの/ 3306 / mysql3306.sock"
CNF = "/データ/ mysqlの/ 3306 / my3306.cnf"
MYSQL_USER = "mysqlの"
MYSQL_PWD = "密码"
CmdPath = "は/ usr / local / mysqlの/ binに"

#startup関数
function_start_mysql()
{
printfの"開始MySQLの... \ n"は
/ binに/ shの$ {} CmdPath / mysqld_safeを--defaults-ファイル= $ {} CNF --user = $ {MYSQL_USER} 2>&1> / DEV / nullに&
}

#STOP関数
function_stop_mysql()
{
printfの"ストーピングMySQLの... \ n"は
$ {CmdPath} / mysqladminの-u $ {} MYSQL_USER -p $ {} MYSQL_PWD -S $ {} SOCKシャットダウン
}

#restart関数
function_restart_mysql()
{
printfの"再起動のMySQL ... \ n"は
function_stop_mysql
スリープ2
function_start_mysql
}

ケース$ 1
スタート)
function_start_mysql
;;
ストップ)
function_stop_mysql
;;
再起動)
function_restart_mysql
;;
*)
のprintf "使い方:dbone {開始|停止|再起動} \ n"は
ESAC

   配置实例3307系统服务脚本

[ルート@〜]#vimの/etc/init.d/dbtwo
#/ binに/ shを!
#chkconfigという:2345年81 92
Linuxシステム上で動作するように考案さ#Simple dbtwoのMySQLのinit.dスクリプト

SOCK = "/データ/ mysqlの/ 3307 / mysql3307.sock"
CNF = "/データ/ mysqlの/ 3307 / my3307.cnf"
MYSQL_USER = "mysqlの"
MYSQL_PWD = "密码"
CmdPath = "は/ usr / local / mysqlの/ binに"

#startup関数
function_start_mysql()
{
printfの"開始MySQLの... \ n"は
/ binに/ shの$ {} CmdPath / mysqld_safeを--defaults-ファイル= $ {} CNF --user = $ {MYSQL_USER} 2>&1> / DEV / nullに&
}

#STOP関数
function_stop_mysql()
{
printfの"ストーピングMySQLの... \ n"は
$ {CmdPath} / mysqladminの-u $ {} MYSQL_USER -p $ {} MYSQL_PWD -S $ {} SOCKシャットダウン
}

#restart関数
function_restart_mysql()
{
printfの"再起動のMySQL ... \ n"は
function_stop_mysql
スリープ2
function_start_mysql
}

ケース$ 1
スタート)
function_start_mysql
;;
ストップ)
function_stop_mysql
;;
再起動)
function_restart_mysql
;;
*)
のprintf "使い方:dbtwo {開始|停止|再起動} \ n"は
ESAC

   配置授权添加系统服务

[ルート@〜]#chmodの+ X /etc/init.d/dbone
[ルート@〜]#chmodの+ X /etc/init.d/dbtwo
[ルート@〜]#chkconfigの--add dbone
[ルート@〜] #chkconfigを-add dbtwo
[ルート@〜]#chkconfigを--list dbone
[ルート@〜]#chkconfigを--list dbtwo


   启动两个db服务

[ルート@〜]#サービスdbone開始
開始dbtwo [ルート@〜]#サービス

   停止两个db服务

[ルート@〜]#サービスdbone停止
[ルート@〜]#サービスdbtwo停止

   查看两个db服务进程

[ルート@〜]#netstatの-tnlp | 3306 grepし
ます。[root @〜]#netstatの-tnlpを| 3307をgrepします

2.7.9.  数据导入
第一个实例创建库与用户密码:

[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3306/mysql3306.sock
パスワードを入力します:
mysqlの>は、データベースTESTONEのデフォルト文字セットUTF8 COLLATE utf8_binを作成します。
MySQLの>付与SELECT、INSERT、UPDATE、TESTONE上で実行、作成、削除*に'TESTONE' @ '密码'によって識別される'%'。
MySQLの>設定されたグローバルlog_bin_trust_function_creators = TRUE;
MySQLの>フラッシュ権限;
MySQLの>終了
[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3306/mysql3306.sock TESTONE </data/test.sql

第二个实例创建库与用户密码:

[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3307/mysql3307.sock
パスワードを入力します:
mysqlの>は、データベースtesttwoのデフォルト文字セットUTF8 COLLATE utf8_binを作成します。
MySQLの>付与SELECT、INSERT、UPDATE、testtwo上で実行、作成、削除*に'testtwo' @ '密码'によって識別される'%'。
MySQLの>フラッシュ権限;
MySQLの>終了
[ルート@〜]#mysqlの-uroot -p -S /data/mysql/3307/mysql3307.sock testtwo </data/testtwo.sql

2.7.10. 防火墙配置
   根据实际要求,添加开放端口

[ルート@〜]#ファイアウォール-CMD --zone =公共--add-ポート= 3306 / tcpの--permanent
[ルート@〜]#ファイアウォール-CMD --zone =公共--add-ポート= 3307 / TCP - -permanent

   重新载入

[ルート@〜]#ファイアウォール-CMD --reload

おすすめ

転載: blog.51cto.com/8355320/2463218