搭建共享mysql数据库_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值