《三》(2)Mysql数据库---基本命令

本文详细介绍了MySQL的基本命令,包括数据库创建、查询、插入、修改和删除,以及数据同步和MySQL集群的配置与故障恢复步骤。
摘要由CSDN通过智能技术生成

一、Mysql基本命令

1、基础常用命令

        本地登陆:mysql -u root -p     密码

        远程登陆:mysql -h 登陆ip 端口(通常3306) -u root -p    密码

2、创建命令

        创建数据库:create database 数据库名 (default charset utc8)

        创建数据表:create table 表名(列名 数据库类型 约束,…) (engine=innodb default charset=utf8)

3、查表命令

 (1)查看数据库:show databases;

 (2)进入数据库:use databases(数据库名)

 (3)条件查找:select *from 表名;

          Select *from 表名 where 条件1 and 条件2;

         从大到小排序:select *from 表名 order by 列名 desc;

         从小到大排序:select *from 表名 order by 列名 asc;

         列1从大到小排序,列2从小到大排序:select *from 表名 order by 列名1 desc 列名2 asc;

(4) 连表操作

         左连接:select *form 表1 left join 表2 on 表1.列名=表2.列名;

         右连接:select *from 表1 right join 表2 on 表1.列名=表2.列名;

         内连接:select *from 表1 inner join 表2 on 表1.列名=表2.列名

         临时表:(select *from 表名)as e

4、删除,修改,插入命令

(1)插入

         插入值:insert into 表名(列名1,列名2…)values(值1,值2)

         在表1中插入表2中的数据:Insert into 表名1(列名) select 列名 from 表2

 (2)修改

        Update 表名 set 列名1=value1,列名2=value2 where 条件1 and/or 条件2;

 (3)删除

         清除表:delete from 表名(如果有自增id,id不会重新开始)

         清除特定数据:delete from 表名 where 条件

         清除表:truncate table 表名(如果有自增id,id会重新开始)

二、Mysql数据同步,集群

1、Mysql数据同步

① 设置数据库为只读状态,防止新的数据写入。

        主库 set global read_only=1;  

② 导出主库的所有数据。

        在主库的linux上执行:

        mysqldump -u root -p --all-databases  > /usr/local/src/test1.sql --set-gtid-purged=OFF

③从库执行:

drop database “表名”; ===从库删除所有除系统的数据表;

        查看数据库: show databases;删除数据库:drop database 数据库1;drop database 数据库2; mysql -u 用户名 -p -e "DROP DATABASE 数据库1; DROP DATABASE 数据库2; DROP DATABASE 数据库3;"

        从库删掉除了MySQL、information_schema、mysql_innodb_cluster_metadata、performance_schema、sys以外的其它数据库  

④ 从库登录root 执行 

Stop group_replication; Set global read_only=0;===停止同步数据库机制,并将从库数据库设置为可写操作;

⑤ 从库Linux执行

scp -r root@主库ip:/usr/local/src/test1.sql /usr/local/src/test1.sql从库root账号登录MySQL,执行 source /usr/local/src/test1.sql  ======从库从主库拷贝数据; 

⑥从库执行完毕后,主库#启动引导项

SET GLOBAL group_replication_bootstrap_group=ON;

#开启组复制

START GROUP_REPLICATION;

#关闭引导项,防止服务重启时引起新的引导导致脑裂

SET GLOBAL group_replication_bootstrap_group=OFF;

rest master; reset slave; start group_replication;  

⑦ 从库恢复后,主库操作

 set global read_only=0; ===已成功同步主库的数据到从库,设置主库为可读

2、数据未同步成功,重新操作(同步成功忽略)

mysqlsh --mysqlx -u root -h localhost 进入mysqlshell

var cluster=dba.getCluster('prodCluster')

cluster.status()         \q退出来

SET GLOBAL read_only = 1 #设置数据库为只读状态,防止新的数据写入

reset master  #清空binlog

#导出指定数据库数据,此处导出生产数据即可,mysql自带的数据库忽略

mysqldump -uroot -proot --databases db1 db2 >/opt/product_data.sql

1、导出

mysqldump -u root -p --databases data_analyze rdtest rdtest_approve_service rdtest_lab_agent_manager rdtest_message_center rdtest_service_proxcy rdtestreservation rdtesttaskmanage rdtestworkflow role_management > /usr/local/src/test1.sql --set-gtid-purged=OFF

2、导入

清空从数据库数据(使用drop database db1逐个数据库清理),导入由主库导出的product_data.sql,保证主从数据一致性。

Source /opt/product_data.sql

#启动引导项

SET GLOBAL group_replication_bootstrap_group=ON;

#开启组复制

START GROUP_REPLICATION;

#关闭引导项,防止服务重启时引起新的引导导致脑裂

SET GLOBAL group_replication_bootstrap_group=OFF;

3、Mysql集群操作

        mysql集群,一般指mysql部署了几个节点,实现负载均衡,如总部署5个节点数据库,挂掉1个或2个对业务不会造成影响,而挂掉半数以上则集群挂掉,业务就不可用。

linux服务器中操作数据库命令:

(1)启动:systemctl start mysql

(2) 停止:systemctl stop mysql

(3)查看主从节点状态

         select * from performance_schema.replication_group_members;

(4)手动恢复集群

       ① 进入挂掉节点的数据库

        mysql -u root -p    用户名密码:root/123(根据自己设定的用户名密码操作)

        ②启动节点

stop GROUP_REPLICATION;  start GROUP_REPLICATION; 若无法加入成功,reset master/slave操作一次;

        节点展示的一直是recover状态时,可以查看日志是否有报错,没有报错就是正常的recover:        cd /var/log/mysql    error.log或者error.log.1===进入mysql目录,查看日志

若报mysql超时,去主库执行这两行USE performance_schema; truncate table host_cache; 

        ③ 重启mysqlrouter(mysqlrouter为mysql官方提供的轻量级中间件,往往负载均衡是通过mysqlrouter操作,若节点挂掉,mysqlrouter会将其移除集群)

        启动mysqlrouter:sh /tmp/myrouter/start.sh

        查看mysqlrouter状态:netstat -tnlp|grep 6446 netstat -tnlp|grep 6447

        查看数据库状态:mysqlsh --mysqlx -u root -h localhost dba.configurelnstance() var cluster = dba.getCluster('prodCluster') cluster.status()

  • 29
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值