yzqzs 发表于 2018-10-7 06:12:12

MySQL数据管理6-hj

  配置主从同步的步骤
  环境准备
  从一定要有主库比自己多个的数据
  systemctl   stopfirewalld
  setenforce0
  物理连接能通
  配置主数据库服务器
  1用户授权
  grantreplicationslaveon   *.*to   plj@"%"identified by"123456";
  2 修改配置文件
  vim /etc/my.cnf
  server_id=12
  log_bin=master12
  log_format="mixed"
  :wq
  3 重启数据服务
  systemctlrestartmysqld
  4 查看当前使用的 binlog日志信息
  mysql-uroot   -p123123
  mysql> show master status;
  配置从数据库服务器
  1验证主库授权用户
  mysql-h192.168.4.12   -uplj   -p123456
  mysql>
  2修改配置文件
  vim /etc/my.cnf
  server_id=11
  log_bin=slave11   #可选
  log_format="mixed"
  :wq
  3重启数据服务
  systemctlrestartmysqld
  4管理员登录把自己指定为从数据库服务器
  mysql -uroot-p654321
  mysql> showslave status\G;
  mysql> changemastertomaster_host="192.168.4.12",master_user="plj",master_password="123456",master_log_file="master12.000001",master_log_pos=154;
  5启动slave 进程
  mysql> startslave;
  6查看slave 进程状态信息
  mysql> showslave status\G;
  slave_io_running: yes
  slave_sql_running: yes
  验证主从同步配置
  客户端访问主数据库服务器,创建库 表记录 ,在从数据服务器上也能够看到
  主从同步工作原理
  slave_io_running:把主数据库服务器上binlog日志里的sql 存放到本机的中继日志文件里。
  Last_IO_Error: 报错信息
  出错原因: 从服务器连接不上主数据库服务器
  ping   firewalld   selinux
  change master to 的配置信息错误。
  slave_sql_running:执行本机中继日志文件里的sql命令。
  Last_SQL_Error: 报错信息
  mysql>stopslave;
  mysql>changemasterto选项=值,选项=值;
  mysql>startslave;
  cd /var/lib/mysql/
  master.info   连接主数据库服务器的信息
  relay-log.info中继日志文件
  localhost-relay-bin.xxxxxx   中继日志文件
  localhost-relay-bin.index   中继日志索引文件
  把一台数据库服务器恢复为独立的数据库服务器。
  #cd /var/lib/mysql

  #rm -rfmaster.info>  #systemctlrestart   mysqld
  让从数据库服务器临时不同步数据(想同步再启动就可以了)
  mysql>stopslave ;
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  day06
  mysql主从同步结构模式
  一主一从
  一主多从
  主从从
  主主结构(互为主从)
  +++++++++++++++++++++++++++++
  mysql主从同步配置参数
  主数据库服务器使用的配置参数
  /etc/my.cnf
  
  binlog_do_db=数据库名,数据库名    #只允许同步的库
  binlog_ignore_db=数据库名,数据库名#只不允许同步的库
  :wq
  #systemctlrestart   mysqld
  从数据库服务器使用的配置参数
  /etc/my.cnf
  
  log_slave_updates # 允许级联复制
  relay_log=名       #中继日志文件名
  replicate_do_db=数据库名,数据库名 #只同步的库
  replicate_ignore_db=数据库名,数据库名#只不同步的库
  :wq
  #systemctlrestart   mysqld
  ++++++++++++++++++++++++++++++
  中间件maxscale
  读写分离 (maxscale +mysql主从同步)
  maxscale-2.1.2-1.rhel.7.x86_64.rpm
  需求 在主机192.168.4.10配置读写分离服务,客户端连接后,
  把执行的查询请求分配给192.168.4.11主机,执行的写请求分
  配给192.168.4.12主机,
  配置
  1把11 主机配置为12的从数据库服务器
  2 在主机10运行实现读写分离功能的服务maxscale
  2.1 安装软件包
  rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm
  2.2 修改配置文件
  # sed -i'/#/d' /etc/maxscale.cnf
  # vim /etc/maxscale.cnf
  # cat /etc/maxscale.cnf
  
  threads=1
  
  type=server
  address=192.168.4.12
  port=3306
  protocol=MySQLBackend
  
  type=server
  address=192.168.4.11
  port=3306
  protocol=MySQLBackend
  
  type=monitor
  module=mysqlmon
  servers=server1,server2
  user=scalemon
  passwd=111111
  monitor_interval=10000
  
  type=service
  router=readwritesplit
  servers=server1,server2
  user=maxscale
  passwd=111111
  max_slave_connections=100%
  
  type=service
  router=cli
  
  type=listener
  service=Read-Write Service
  protocol=MySQLClient
  port=4006
  
  type=listener
  service=MaxAdmin Service
  protocol=maxscaled
  socket=default
  port=6606
  #
  配置文件说明
  0 设置服务运行启动的线程数量
  
  1 数据库服务器成员   
  2 监控数据库服务器成员列表
  user=scalemon   //用户名
  passwd=111111   //密码
  3 指定在那些数据库服务器之间做读写分离
  
  user=maxscale   //用户名
  passwd=111111//密码
  4 定义管理服务
  
  5 读写分离服务监控的端口号
  
  6 指定管理服务监听的端口号
  
  2.2根据配置文件的设置添加授权用户(12   11)
  scalemon用户
  grant replication slave, replication client on *.* to scalemon@"%"identified by “111111”;//创建监控用户
  maxscale用户

  grant select on mysql.* to maxscale@'%'>  2.4 启动maxscale
  #maxscale-f/etc/maxscale.cnf
  #netstat -utnalp| grep :4006
  #netstat -utnalp| grep :6606
  #maxadmin -uadmin-pmariadb -P6606
  MaxScale> list servers
  Servers.
  -------------------+-----------------+-------+-------------+--------------------
  Server             | Address         | Port| Connections | Status
  -------------------+-----------------+-------+-------------+--------------------
  server1            | 192.168.4.12    |3306 |         0 | Master, Running
  server2            | 192.168.4.11    |3306 |         0 | Slave, Running
  -------------------+-----------------+-------+-------------+--------------------
  MaxScale>quit
  #
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  在主从数据库服务器上客户端访问数据时使用的连接用户

  mysql>grant all on*.*to student@"%">  "123456";
  客户端访问
  #which mysql
  #mysql-h192.168.4.10   -P4006 -ustudent   -p123456
  mysql>select   ---->11   从
  mysql>insert   ---->12   主
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  mysql性能调优
  数据库服务器处理客户端的访问速度特别慢,可能是由哪些原因
  造成的?
  1 网络带宽不够
  2 服务器配置太低
  3提供数据库服务软件版本低
  查看服务运行时的运行参数(变量)
  mysql-uroot-p123123
  mysql> showvariableslike"%关键字%";
  mysql> set变量名=值;
  vim /etc/my.cnf
  
  变量=值
  :wq
  并发连接数
  max_connections
  mysql> showglobalstatus like "%max_used_conn%";
  Max_used_connections/max_connections=0.85* 100%
  连接超时时间
  mysql>showvariableslike   "%timeout%";
  connect_timeout=10
  wait_timeout=28800
  允许保存在缓存中被重用的线程数量
  thread_cache_size=10
  为所有线程缓存的打开的表的数量
  table_open_cache =3
  查询缓存参数设置?
  mysql> showvariables like"query_cache%";
  query_cache_type=0/1/2
  1select * from t1;   show global status like"qcache%";
  4程序员编程程序有问题(访问数据是编写的sql命令复杂导致处
  理速度慢)
  mysql服务支持4种日志文件:
  错误日志   binlog   查询日志   慢查询日志
  默认开启
  查询日志:客户端连接服务器后执行的所有的sql命令。
  general-log
  general-log-file=目录/名
  默认存储位置和名称
  cat/var/lib/mysql/主机名.log
  慢查询日志 :客户端连接服务器后,记录超过指定时间(默认
  10秒)显示查询结果的sql命令。
  slow-query-log
  slow-query-log-file=目录/名
  long-query-time=3
  默认存储位置和名称
  mysql> select sleep(11);
  cat   /var/lib/mysql/主机名-slow.log
  # mysqldumpslow localhost-slow.log > /tmp/sql.err
  4程序员编程程序有问题(访问数据是编写的sql命令复杂导致处理速度慢)
  启用慢查询日志 ,记录超过指定时间显示查询结果的sql命令
  5网络结构有问题

页: [1]
查看完整版本: MySQL数据管理6-hj