mysql数据库搭建

机器:
[ 192.168.12.90   3306/3307] bje-qa-mysql-01   /100G    /home 178G  /data 6.3T                        
[ 192.168.12.91   3306/3307] bje-qa-mysql-02   /100G    /home 178G  /data 6.3T                        
[ 192.168.12.92   3306] bje-qa-mysql-03        /100G    /home 178G  /data 6.3T                    
[ 192.168.12.93   3306] bje-qa-mysql-04        /100G    /home 178G  /data 6.3T                   
[ 192.168.12.94   3306] bje-qa-mysql-05        /100G    /home 178G  /data 6.3T                    
[ 192.168.12.95   3306] bje-qa-mysql-06        /100G    /home 178G  /data 6.3T


192.168.65.15:6015端口
---------------------------------
一、搭建单个实例
1.安装依赖包(#已安装#)
yum install cmake make gcc gcc-c++ biso ncurses ncurses-devel

2.手动创建创建数据目录    
cd /data/
mkdir mysql3307
cd mysql3307/
mkdir data etc log binlog innodata innolog relaylog
ll
cd log/
touch mysqld.err


3.新建mysql用户组和用户,并改变新建数据目录的属组和属主:
groupadd mysql   (#已创建#)
useradd -r -g mysql mysql  (#已创建#)
cd /data/
chown -R mysql:mysql /data/mysql3307

4、下载、解压安装包
mkdir -p /data/soft
cd /data/soft
wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.58.tar.gz(#已下载#)
解压:
tar -zxf mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz(#已解压#)

5、在解压目录中进行cmake编译:
cd /data/soft/mysql-5.5.58/
cmake .
-DCMAKE_INSTALL_PREFIX=/data/mysql3307/
-DMYSQL_DATADIR=/data/mysql3307/data
-DSYSCONFDIR=/data/mysql3307/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DMYSQL_UNIX_ADDR=/data/mysql3307/mysql.sock
-DMYSQL_TCP_PORT=3307
-DENABLED_LOCAL_INFILE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci


6.make&&make install
make -j8
make install

5.配置文件的修改
vi /data/mysql3307/etc/my3307.cnf
#注意:使用线上配置文件,则cnf文件中出现的目录和文件,除了mysqld.pid和mysql.sock(这两个文件在服务启动过程中会自动生成)文件之外,都要事先创建好。
    
6.初始化系统表(在安装目录中进行)
cd /data/mysql3307/
scripts/mysql_install_db --user=mysql --datadir=/data/mysql3307/data/
#出现两个OK即为成功

7.使用配置文件启动服务
cd /data/mysql3307/bin
./mysqld_safe --defaults-file=/data/mysql3307/etc/my3307.cnf &
ps -ef|grep mysql
#查看服务起来则安装成功

8、安装完成MySQL后第一时间删除(!=)root或者host不是localhost的用户:
./mysql   登录
select user,host,password from mysql.user;
delete from mysql.user where user not in('root','localhost');
再次检查一下用户:
select user,host,password from mysql.user;

9、为mysql数据库创建root密码和新用户名密码
给root用户设置密码:
update mysql.user set password=password('root123') where user='root';
flush privileges;
验证:
exit
mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
 
创建新用户:
grant all privileges on *.* to 'tester'@'%' identified by 'nopass.2';
flush privileges;                                                       
select user,host,password from mysql.user;
验证:
exit
mysql -utester -pnopass.2 --socket=/data/mysql3307/mysql.sock

##命令
ps -ef|grep mysqld查看mysql进程





二、搭建主从
第一步:从库也先搭建单个实例,注意配置文件中的server_id要设置不同
(同时)
主库上创建主从同步账号:
mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
grant replication slave on *.* to 'repl'@'%' identified by 'repl123';
flush privileges;
验证:
mysql -urepl -prepl123 --socket=/data/mysql3307/mysql.sock

查看主库当前的二进制日志pos:
mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
mysql> show master status;
+----------+----------+--------------+------------------+
| File     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------+----------+--------------+------------------+
| 0.000001 |     1122 |              |                  |
+----------+----------+--------------+------------------+
1 row in set (0.00 sec)

从库上:
CHANGE MASTER TO
  MASTER_HOST='192.168.12.90',
  MASTER_USER='repl',
  MASTER_PASSWORD='repl123',
  MASTER_PORT=3307,
  MASTER_LOG_FILE='0.000001',
  MASTER_LOG_POS=1122,
  MASTER_CONNECT_RETRY=60;

start slave;
show slave status G;
##在这里主要是看:
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
Second_Behind_Master=0



三、导出导入数据(以192.168.65.15:6015为例)
1、查看库:
mysql -u'tester' -S /data/mysql6015/mysql.sock  -pnopass.2  -P 6015

2、导出数据:
[备份前查看一下数据大小]
cd /data/mysql6015/data
du -sh
查看不了可以用sudo su查看

*备份所有数据库:(可选)
time mysqldump -utester -pnopass.2 -A--single-transaction --socket=/data/mysql6015/mysql.sock -P6015 > /tmp/Backup01.sql

备份指定数据库:
time mysqldump -utester -pnopass.2 --databases hotel_product_single hotel_confirm hotel_cashout hotel_schedule --single-transaction --socket=/data/mysql6015/mysql.sock -P6015 > /tmp/Backup01.sql

例如:
hotel_product_single
hotel_confirm
hotel_cashout
hotel_schedule


3、拷贝备份文件:
scp /tmp/Backup01.sql tester@192.168.12.90:/tmp/

4、导入数据:
目标实例上:
ll /tmp
mysql -utester -pnopass.2 --socket=/data/mysql3306/mysql.sock
source /tmp/Backup01.sql

##主库配置文件
[mysqld]
datadir=/data/mysql3307/data
socket=/data/mysql3307/mysql.sock
pid-file=/data/mysql3307/mysqld.pid
general_log=1
general_log_file=/data/mysql3307/log/mysql.log
log-error=/data/mysql3307/log/mysqld.err
log-bin=/data/mysql3307/binlog/mysql-bin.log
log-bin-index=/data/mysql3307/binlog/mysql-bin.index
log_bin_trust_function_creators=1
log_bin=0
read_only=0   ##主库为0,关闭##
server_id=330790

expire_logs_days=7
binlog_format=mixed
max_binlog_size=1024MB
user=mysql
default-storage-engine=innodb
port=3307
character_set_server=utf8
skip_name_resolve
wait_timeout=3600

####################################
#InnoDB
####################################
innodb_data_home_dir=/data/mysql3307/innodata  # [InnoDB] 
innodb_file_per_table=1           # [InnoDB]独立表空间开关
innodb_data_file_path=ibdata1:64M:autoextend # [InnoDB]共享表空间
innodb_flush_log_at_trx_commit=1      # [InnoDB] 
innodb_log_group_home_dir=/data/mysql3307/innolog   # [InnoDB Log] 
innodb_log_file_size=512M                      # [InnoDB Log] 
innodb_log_files_in_group=3                  # [InnoDB Log] 
innodb_lock_wait_timeout=100
#innodb_flush_method=O_DIRECT   #Direct IO
#innodb_sync_spin_loops=0
#innodb_io_capacity=2000
innodb_file_io_threads=4
innodb_max_dirty_pages_pct=80
innodb_thread_concurrency=16


####################################
#Replication
####################################
relay-log=/data/mysql3307/relaylog/mysql-relay-bin.log
relay-log-index=/data/mysql3307/relaylog/mysql-relay-bin.index
##must be multi-lines,don't seperated by comma
#replicate-do-db =
#replicate-do-db =
#replicate-ignore-db = mysql
#replicate-ignore-db = test
#slave-skip-errors = all       # use [mk-slave-restart]
#log-slave-updates=1
#report-host=10.91.64.3
#report-port=6231
slave-net-timeout = 300
relay_log_purge=0

####################################
#Slow Query
####################################
slow-query-log=1
slow-query-log-file=/data/mysql3307/log/slow.log
long-query-time=0.5

####################################
#Global Memory
####################################
max_connections = 2020
max_user_connections=1900
max_connect_errors=10000
thread_concurrency = 8
max_allowed_packet = 48M
max_binlog_cache_size=256M
query_cache_limit=2M
max_tmp_tables=256
interactive_timeout=300

binlog_cache_size = 2M
table_cache = 1024 
thread_cache_size = 1200
query_cache_size = 32M
key_buffer = 16M    # [MyISAM]
innodb_log_buffer_size = 8M   # [InnoDB]
innodb_buffer_pool_size= 2048M    # [InnoDB,一般设置成机器内存的50%~80%,测试机1GB]   

####################################
#Thread Private
####################################
sort_buffer_size = 2M
thread_stack = 256K
join_buffer_size = 4M
read_buffer_size = 4M 
read_rnd_buffer_size = 4M
net_buffer_length = 16384 
bulk_insert_buffer_size = 4M  
tmp_table_size = 256M 
max_heap_table_size = 16M  


[mysql]
prompt=u@h:p>
pager=less -SFX

[client]
socket = /data/mysql3307/mysql.sock
##从库配置文件
[mysqld]
datadir=/data/mysql3307/data
socket=/data/mysql3307/mysql.sock
pid-file=/data/mysql3307/mysqld.pid
general_log=1
general_log_file=/data/mysql3307/log/mysql.log
log-error=/data/mysql3307/log/mysqld.err
log-bin=/data/mysql3307/binlog/mysql-bin.log
log-bin-index=/data/mysql3307/binlog/mysql-bin.index
log_bin_trust_function_creators=1
log_bin=0
read_only=1    ##从库为1,开启##
server_id=330791

expire_logs_days=7
binlog_format=mixed
max_binlog_size=1024MB
user=mysql
default-storage-engine=innodb
port=3307
character_set_server=utf8
skip_name_resolve
wait_timeout=3600

####################################
#InnoDB
####################################
innodb_data_home_dir=/data/mysql3307/innodata  # [InnoDB] 
innodb_file_per_table=1           # [InnoDB]独立表空间开关
innodb_data_file_path=ibdata1:64M:autoextend # [InnoDB]共享表空间
innodb_flush_log_at_trx_commit=1      # [InnoDB] 
innodb_log_group_home_dir=/data/mysql3307/innolog   # [InnoDB Log] 
innodb_log_file_size=512M                      # [InnoDB Log] 
innodb_log_files_in_group=3                  # [InnoDB Log] 
innodb_lock_wait_timeout=100
#innodb_flush_method=O_DIRECT   #Direct IO
#innodb_sync_spin_loops=0
#innodb_io_capacity=2000
innodb_file_io_threads=4
innodb_max_dirty_pages_pct=80
innodb_thread_concurrency=16


####################################
#Replication
####################################
relay-log=/data/mysql3307/relaylog/mysql-relay-bin.log
relay-log-index=/data/mysql3307/relaylog/mysql-relay-bin.index
##must be multi-lines,don't seperated by comma
#replicate-do-db =
#replicate-do-db =
#replicate-ignore-db = mysql
#replicate-ignore-db = test
#slave-skip-errors = all       # use [mk-slave-restart]
#log-slave-updates=1
#report-host=10.91.64.3
#report-port=6231
slave-net-timeout = 300
relay_log_purge=0

####################################
#Slow Query
####################################
slow-query-log=1
slow-query-log-file=/data/mysql3307/log/slow.log
long-query-time=0.5

####################################
#Global Memory
####################################
max_connections = 2020
max_user_connections=1900
max_connect_errors=10000
thread_concurrency = 8
max_allowed_packet = 48M
max_binlog_cache_size=256M
query_cache_limit=2M
max_tmp_tables=256
interactive_timeout=300

binlog_cache_size = 2M
table_cache = 1024 
thread_cache_size = 1200
query_cache_size = 32M
key_buffer = 16M    # [MyISAM]
innodb_log_buffer_size = 8M   # [InnoDB]
innodb_buffer_pool_size= 2048M    # [InnoDB,一般设置成机器内存的50%~80%,测试机1GB]   

####################################
#Thread Private
####################################
sort_buffer_size = 2M
thread_stack = 256K
join_buffer_size = 4M
read_buffer_size = 4M 
read_rnd_buffer_size = 4M
net_buffer_length = 16384 
bulk_insert_buffer_size = 4M  
tmp_table_size = 256M 
max_heap_table_size = 16M  


[mysql]
prompt=u@h:p>
pager=less -SFX

[client]
socket = /data/mysql3307/mysql.sock
原文地址:https://www.cnblogs.com/yuer011/p/8072734.html