linux mysql操作

mysql(contox7)

解压安装包:tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

检查环境是否有:rpm -qa|grep mariadb

移除mariadb:rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

安装数据库rpm:

1.安装common:rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm

2.安装libs:rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm

3.安装libs-compat:rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm

4.安装客户端client:rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

5.安装服务端server:rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

6.安装工具devel:rpm -ivh  mysql-community-devel-5.7.28-1.el7.x86_64.rpm

注:server安装不了,安装依赖包

  yum search perl

  yum -y install perl.x86_64

  yum search libaio

  yum -y install libaio.x86_64

  yum search net-tools

  yum -y install net-tools.x86_64

初始化mysql: mysqld --initialize --user=mysql

初始密码:cat /var/log/mysqld.log C=gjS33sNiwa

系统启动时启动服务:systemctl start mysqld.service

查看是否启动成功: systemctl status mysqld.service

修复密码:set password=password('root');

关闭防火墙:

  关闭:systemctl stop iptables(如果报错需下载:yum install -y iptables-services iptables-devel.x86_64 iptables.x86_64)

  关闭防火墙: systemctl stop firewalld

  启动系统时关闭:systemctl disable firewalld.service

 

master:

编辑vi /etc/my.cnf:

#开启binlog功能并指定log文件为mysql-bin
log_bin=mysql-bin
#设置serverid
server-id=1
#与磁盘同步
sync-binlog=1
#指定不同步的库
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys

#指定同步的库
#binlog-do-db=lagou

重启服务:systemctl restart mysqld;

赋权限:

    grant replication slave on *.* to 'root'@'%' identified by 'root';

    grant all privileges on *.* to 'root'@'%' identified by 'root';

    grant all on *.* to 'root'@'%';(赋权root所有访问链接最大权限,上面不生效用这个)

    flush privileges;(刷新权限)

    show master status;(查看状态)

追加从库将数据备份一份:

安装mysql的目录下:mysqldump --all-databases > mysql_backup_all.sql -uroot -p(全量备份)

半同步复制:

是否支持动态安装插件:select @@have_dynamic_loading;

安装半同步的插件并命名为“semisync_master.so”:install plugin rpl_semi_sync_master soname 'semisync_master.so';

查看参数:show variables like '%semi%';

开启半同步复制:set global rpl_semi_sync_master_enabled=1;

半同步复制时间延迟:set global rpl_semi_sync_master_timeout=1000;

并行复制:

查看并行复制的参数:show variables like '%binlog_group%';

并行复制时间延迟:set global binlog_group_commit_sync_delay=1000;

 并行复制每组的事务数:set global binlog_group_commit_sync_no_delay_count=100;

slave:

编辑vi /etc/my.cnf:

#与maser不一样就行
server-id=2
#指定relay_log的文件为mysql-relay-log relay_log=mysql-relay-log
#该库只读 read_only=1

重启服务:systemctl restart mysqld;

mysql:

    show slave status;(提前查看状态)

    change master to master_host='ip',master_port=端口,master_user='root',master_password='root',master_log_file='mysql-bin.000002',master_log_pos=589;(指定从mater复制)

    start slave;(开启slave )

半同步复制:

是否支持动态安装插件:select @@have_dynamic_loading;

安装半同步的插件并命名为“semisync_slave.so”:install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

查看参数:show variables like '%semi%';

开启半同步复制: set global rpl_semi_sync_slave_enabled=1;

重新加载:stop slave;

     start slave;

并行复制:

查看并行复制的参数:show variables like '%slave_parallel%';

          show variables like '%relay_log%';

并行复制提交方式为组提交:(需要提前停止slave:stop slave;)set global slave_parallel_type='LOGICAL_CLOCK';

并行复制的线程数:set global slave_parallel_workers =8;

set global relay_log_info_repository='TABLE';

set global master_info_repository='TABLE';

vi /etc/my.cnf:(将以上信息配置在配置文件中)

slave_parallel_type=LOGICAL_CLOCK
slave_parallel_workers =8
relay_log_info_repository=TABLE
master_info_repository=TABLE
relay_log_recovery=1

mysql-proxy安装:

解压安装包:tar -xzvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

创建一个读写文件:vim /etc/mysql-proxy.cnf

[mysql-proxy]
#当前运行proxy的用户 user=root #指定主从mysql的账号及密码 admin-username=root admin-password=root #指定代理的地址 proxy-address=192.168.126.118:4040 #主库信息 proxy-backend-addresses=192.168.126.120:3306 #从库信息(读)多个逗号隔开 proxy-read-only-backend-addresses=192.168.126.119:3306 #采用lua脚本分发信息 proxy-lua-script=/root/proxy/mysql-proxy-0.8.5-linux-el6-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua #日志文件 log-file=/var/log/mysql-proxy.log #日志级别 log-level=debug #指定proxy的进程是守护进程的方式 daemon=true #proxy宕机时试图重启 keepalive=true

 权限修改为可读写:chmod 660 /etc/mysql-proxy.cnf

打开指定的脚本:vi mysql-proxy-0.8.5-linux-el6-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua

达到最小的连接数时才进行读写分离的生效

修改:min_idle_connections = 1

启动proxy服务:

cd mysql-proxy-0.8.5-linux-el6-x86-64bit/bin/

./mysql-proxy --defaults-file=/etc/mysql-proxy.cnf 

(在当前目录找mysql-proxy)(指明用那个配置文件启动)

 双主模式

 vi /etc/my.cnf

#开启binlog功能并指定log文件为mysql-bin
log_bin=mysql-bin
#设置serverid  (另一个主不同)
server-id=1
#与磁盘同步
sync-binlog=1
#指定不同步的库
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
#开启relay_log
relay_log=mysql-relay-bin
#开启更新日志写到二进制文件中(binlog)
log_slave_updates=1   
#开启主键递增从什么位置开始(双主单写可以不配置)  (另一个主从2开始)
auto_increment_offset=1
#递增步长2
auto_increment_increment=2

  mha搭建

所有服务器都要下载

yum install -y perl-DBD-MySQL 

perl-Config-Tiny

perl-Log-Dispatch

perl-ParalExtUtils-CBuilder

perl-ExtUtils-MakeMaker

perl-CPAN

服务器互通

ssh-keygen -t rsa (生成默认秘钥一直回车)
ssh-copy-id mdaip (将秘钥复制到mda服务器)
cat /root/.ssh/authorized_keys (r服务器上检查下,看看.ssh/authorized_keys文件是否包含3个公钥)
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys(将MHA Manager的公钥添加到authorized_keys文件中(此时应该包含4个公钥))
scp /root/.ssh/authorized_keys root@192.168.31.199:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@192.168.31.165:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@192.168.31.142:/root/.ssh/authorized_keys ssh 192.168.31.199(master) exit ssh 192.168.31.165 (slave1) exit ssh 192.168.31.142 (slave2) exit

node

tar -xvf mha4mysql-manager-0.58.tar.gz

cd mha4mysql-manager-0.58

perl Makefile.PL

make && make install 

manage

tar -xvf mha4mysql-manager-0.58.tar.gz

cd mha4mysql-manager-0.58

perl Makefile.PL

make && make install

 MongoDB安装:

解压包:tar -xvf mongodb-linux-x86_64-rhel70-4.2.19.tgz

进入文件:cd mongodb-linux-x86_64-rhel70-4.2.19

创建配置文件:vi mongo.conf

创建数据库目录:mkdir -p /data/mongo

#指定数据库目录
dbpath=/data/mongo/
#监听端口,默认27017
port=27017
#监听IP地址,默认全部可以访问
bind_ip=0.0.0.0
#是否在后台启动
fork=true
#日志路径
logpath=/data/mongo/MongoDB.log
#是否追加日志
logappend=true #是否开启安全认证 auth=false

 启动:./bin/mongod -f mongo.conf

查看启动的进程:ps -ef|grep mongo

停止服务:kill -9 ##

连接mongodb:./bin/mongo --host=ip --port=端口

posted @ 2022-03-12 18:21  a快乐码农  阅读(29)  评论(0编辑  收藏  举报