Mysq关于用户相关操作

1.如何进行查看mysql中创建的用户、密码、主机等相关信息

MariaDB [(none)]> select host,user,password from mysql.user; 

2.如果想要删除mysql.user中的某个账号应该怎么进行删除

MariaDB [(none)]> delete from mysql.user where user='backup';

2.1mysql数据库中删除数据的三种形式drop和truncate和delete。三种删除形式的强度由强到弱依次是:drop > truncate > delete.

(1)、drop(删除表)  table  tb ---tb表示数据表的名字.drop语句将删除表的结构被依赖的约束,触发器索引;依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。简单来说,就是把整个表去掉。以后要新增数据是不可能的,除非新增一个表。

(2)、truncate(清空表中的数据)  table  tb:删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,知识清空表数据而已。

注意:truncate不能删除行数据,要删就要把表清空。

(3)、delete table tb where 条件:delete语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存。以便进行回滚操作。

3.关于mysql故障相关知识总结

[root@master tmp]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决办法:查看socket的配置的路径是否不同的地方,这个是由于socket路径不同才导致的。

4.关于Mysql主从同步的项目实战

4.1简介

   Mysql主从复制环境构建至少需2台服务器,可以配置一主多从、多主多从。Mysql主从复制集群至少需要2台数据库服务器,其中一台为Master库,另外一台为Slave库,Mysql主从数据同步是一个异步复制的过程,要实现复制首先需要在master上开启bin-log日志功能,bin-log日志用于记录在Master库中执行的增、删、修改、更新操作的sql语句,整个过程需要开启3个线程,分别是Master开启IO线程,Slave开启IO线程和SQL线程,具体主从同步原理详解如下:

   Slave执行Slave start,Slave IO线程会通过在Master创建的授权用户连接上至Master,并请求Master从指定的文件和位置之后发送bin-log日志内容。

   Master接收到来自Slave IO线程的请求后,Master IO线程根据Slave发送的执行bin-log日志position点之后的内容,然后返回给Slave的IO线程。

   返回的信息中除了bin-log日志内容外,还有Master最新的bin-log文件名以及在bin-log中的下一个指定更新position点。

   Slave IO线程接收到信息后,并将读取到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的bin-log的文件名和position点记录到master.info文件中,以便在下一次读取的时候能告知master从响应的bin-log的内容成在Master真实执行时候的那些可执行的SQL语句,将解析的SQL语句并在Slave里执行,执行成功后,Master库与Slave库保持数据一致。

4.2 主从复制原理结构图

 4.3 主从复制的环境搭建

 4.3.1 主从复制环境准备情况

     Mysql主从复制环境构建至少需2台服务器,可以配置1主多从、多主多从。

 4.3.2 主从复制的配置详情

 4.3.3 主从复制搭建过程

(1).Master节点进行如下配置,编辑/etc/my.cnf文件

[mysqld]

symbolic-links=0
server-id = 1
log-bin = mysql-bin
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
(2).Master数据库服务器命令行中创建tongbu用户及密码并设置权限,查看bin-log文件及position点,命令如下:

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

show  master  status;

(3).重新启动mariadb服务,启动服务的命令如下

  systemctl restart mariadb

(4).Skave节点进行如下配置,编辑配置文件/etc/my.cnf

注意:Master与Slave端的配置文件当中server-id不能一样,Slave端无需开启bin-log日志功能。

[mysqld]

symbolic-links=0
server-id = 2
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash

(5).Slave端指定Master IP、用户名、密码、bin-log文件名(mysql-bin.000007)及position(385),代码如下:

change master to

master_host='192.168.111.128',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000028',master_log_pos=257;

(6).在slave启动slave start,并执行show slave status\G查看Mysql主从状态

start slave;

show slave status\G

(7).查看Slave端IO线程、SQL线程状态均为YES,代表Slave已正常连接Master实现同步:

Slave_IO_Running:YES

Slave_SQL_Running:YES

 (8)。在Master节点上面创建数据库、创建表、并在表当中插入数据。查看Slave节点是否进行数据同步,如果同步成功,则证明主从同步是正常

注意:查看Slave节点,发现刚刚创建的在Master节点上的数据库同步到Slave节点上面。则说明主从同步是配置成功。

 在xuexiao数据库当中创建表(banji),并在班级当中插入数据。看Slave节点的同步情况。

 

 4.4 主从同步排错思路

      Mysq主从同步集群在生成环境使用过程中,如果主从服务器之间通信条件差或者数据库数量非常大,容易导致Mysql主从同步延迟。

   Mysq主从产生延迟之后,一旦主库宕机,会导致部分数据没有及时同步至从库,重新启动主库,会导致从库与主库同步错误,如何快速恢复主从同步关系呢,如下有两种方法:

(1).忽略错误后,继续同步

   适用场景:此种方法使用于主从库数据内容相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况。

   Master端执行如下命令,将数据库设置全局读锁,不允许写入新的数据:

flush  tables  with  read  lock;

    Slave端停止Slave I/O及sql线程,同时将同步错误的SQL跳过1次,跳过会导致数据不一致,最后启动start slave,同步状态恢复,命令如下:

stop slave;
set  global sql_slave_skip_counter =1;
start slave;

(2).重新做主从同步,完全同步;

      使用场景:此种方法适用于主从库数据内容相差很大,或者要求数据完全统一的情况,数据需完全保持一致。

    Master端执行如下命令,将数据库设置全局读锁,不允许写入新数据:

flush  tables  with  read  lock;

      Master端基于mysqldump、xtrabackup工具进行数据库将完整的数据库备份,也可以用shell脚本或python脚本实现定时备份,备份成功之后,将完整的数据导入至从库,重新配置主从关系,当Slave端的IO线程、SQL线程均为YES之后,最后将Master端读锁解开即可,解锁命令如下:

unlock tables;

 

  

 

 

 

 

 

 

 

 

 

 

posted on 2019-07-21 12:56  cz_boy  阅读(95)  评论(0)    收藏  举报