二進制安裝MySQL數據庫
今天安裝的是二進制的mysql包5.7.21的包,在配置文件的時候采了好多坑,左後還是搞定了,來和大家分享一下
二進制msyql5.7.21版本的主從復制安裝
新建/picclife目錄
mkdir /picclife
新建/picclife/data 目錄
mkdir /picclife/data
創建用戶和組 為mysql
groupadd mysql
useradd -g mysql mysql
將二進制mysql的包傳到/picclife的目錄下
解壓軟件包
tar -zxf 二進制包
改名
mv 解壓出來的包 mysql
加屬組屬主
chown -R mysql:mysql mysql
配置環境變量
vim /etc/profile
mysql_home=/picclife/mysql
export PATH=$PATH:$mysql_home/bin
生效
source /etc/profile
編輯配置文件
vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
##default-character-set = utf8
[mysql]
port = 3306
socket = /tmp/mysql.sock
#default-character-set = utf8
[mysqld]
# GENERAL #
default_storage_engine = InnoDB
#character-set-server = utf8
#collation-server = utf8_unicode_ci
basedir = /picclife/mysql
datadir = /picclife/data
socket = /tmp/mysql.sock
pid-file = /picclife/data/mysql.pid
port=3306
# SAFETY #
skip_name_resolve
max_allowed_packet = 16M
max_connect_errors = 100000
lower-case-table-names = 1
# BINARY LOGGING #
server-id = 1 #server id
log_bin = mysql-bin #開啟二進制日誌
relay_log = relay-bin #開啟中級日誌
expire_logs_days = 14
sync_binlog = 1
binlog_format = ROW
transaction_isolation = READ-COMMITTED
relay_log_info_repository = TABLE
master_info_repository = TABLE
# REPLICATION #
gtid_mode = ON
enforce_gtid_consistency = ON
log_slave_updates = 1
#SEMI_SYNC
#rpl_semi_sync_master_enabled=1
#rpl_semi_sync_master_timeout=10000 # 1 second
# CACHES AND LIMITS #
tmp_table_size = 256M
max_heap_table_size = 256M
query_cache_type = 0
query_cache_size = 0
max_connections = 5000
thread_cache_size = 1000
open_files_limit = 65535
table_definition_cache = 2048
table_open_cache = 2048
sort_buffer_size = 2M
sql_mode = NO_ENGINE_SUBSTITUTION
# INNODB #
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 10G
innodb_stats_on_metadata = 0
innodb_buffer_pool_instances = 4
# LOGGING #
log_error = /picclife/data/mysql-error.log
#log_queries_not_using_indexes = 1
slow_query_log = 1
slow_query_log_file = /picclife/data/mysql-slow.log
long_query_time = 2
log_error_verbosity=2
wait_timeout = 7200
[mysqldump]
user=root
password=123456
安裝數據庫
./bin/mysqld --initialize --user=mysql --basedir=/picclfie/mysql --datadir=/picclife/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp
創建啟動文件
cp /picclife/mysql/support-files/mysql.server /etc/init.d/mysqld
修改/etc/init.d/mysql
加入到開機啟動項
chkconfig --add mysqld
設置開機啟動
chkconfig mysqld on
開啟mysql
service mysqld start
啟動也可以
(
數據庫常規啟停
mysqladmin -uroot -proot shutdown
mysqld_safe --defaults-file=/etc/my.cnf &
ps -ef|grep mysql
)
查看默認密碼
grep -i password /picclife/data/mysql-error.log
用初始化密碼登陸數據庫修改密碼
mysql -uroot -p查到的密碼
修改密碼
SET PASSWORD=PASSWORD(‘密碼‘);
flush privileges;
然後推出可以用新改的密碼登陸了
主的配置文件 已經修改好了,進入數據庫授權
給從服務器slave復制的權限:
grant replication slave on *.* to tom@”從的ip” identified by “123”;
刷新權限:
glush privileges;
查看主服務器master的狀態已得到二進制的名和位置:
show master status;
主就配置好了開始配置從:
從的二進制安裝mysql和住的一樣
就是配置文件裏的server id 不能沖突 可以開啟二進制日誌也可以不開啟,但必須開啟中繼日誌relay_log = mysql-relay
vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
##default-character-set = utf8
[mysql]
port = 3306
socket = /tmp/mysql.sock
#default-character-set = utf8
[mysqld]
# GENERAL #
default_storage_engine = InnoDB
#character-set-server = utf8
#collation-server = utf8_unicode_ci
basedir = /picclife/mysql
datadir = /picclife/data
socket = /tmp/mysql.sock
pid-file = /picclife/data/mysql.pid
port=3306
# SAFETY #
skip_name_resolve
max_allowed_packet = 16M
max_connect_errors = 100000
lower-case-table-names = 1
# BINARY LOGGING #
server-id = 2 #server id
log_bin = mysql-bin #開啟二進制日誌
relay_log = relay-bin #開啟中級日誌
expire_logs_days = 14
sync_binlog = 1
binlog_format = ROW
transaction_isolation = READ-COMMITTED
relay_log_info_repository = TABLE
master_info_repository = TABLE
# REPLICATION #
gtid_mode = ON
enforce_gtid_consistency = ON
log_slave_updates = 1
#SEMI_SYNC
#rpl_semi_sync_master_enabled=1
#rpl_semi_sync_master_timeout=10000 # 1 second
# CACHES AND LIMITS #
tmp_table_size = 256M
max_heap_table_size = 256M
query_cache_type = 0
query_cache_size = 0
max_connections = 5000
thread_cache_size = 1000
open_files_limit = 65535
table_definition_cache = 2048
table_open_cache = 2048
sort_buffer_size = 2M
sql_mode = NO_ENGINE_SUBSTITUTION
# INNODB #
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 10G
innodb_stats_on_metadata = 0
innodb_buffer_pool_instances = 4
# LOGGING #
log_error = /picclife/data/mysql-error.log
#log_queries_not_using_indexes = 1
slow_query_log = 1
slow_query_log_file = /picclife/data/mysql-slow.log
long_query_time = 2
log_error_verbosity=2
wait_timeout = 7200
其余的按爪功你安裝和主的一樣
進入數據庫
進入數據庫:
關閉slave:
stop slave;
設置master的host user 二進制的名字位置等:
change master to master_host=”主的ip”,master_user=”tom”,mster_password=”123”,
master_log_file=”mysql-bin.000002”,master_log_pos=106;
開啟slave
start slave;
查看slave的狀態:
現在主從復制完成,可以在主上創建庫。從上查看
註意:如果以上配置文件啟動報錯,就使用最下面的配置
二進制mysql安裝5.7.20的配置文件
vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server_id=1
port = 3306
user = mysql
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /picclife/mysql
datadir = /picclife/data
pid-file = /picclife/data/mysql.pid
max_connections = 5000
max_connect_errors = 10000
table_open_cache = 2048
max_allowed_packet = 16M
open_files_limit = 65535
####====================================[innodb]==============================
innodb_buffer_pool_size = 10G
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend
innodb_undo_tablespaces=3
#####====================================[log]==============================
log_error = /picclife/data/mysql-error.log
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /picclife/data/mysql-slow.log
sql_mode=NO_ENGINE_SUBSTITUTION
二進制安裝MySQL數據庫