MySQL数据管理6

 配置主从同步的步骤

创新互联建站主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、全网营销推广、网站程序开发、HTML5响应式重庆网站建设公司成都做手机网站、微商城、网站托管及成都网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都玻璃隔断行业客户提供了网站开发服务。

环境准备

从一定要有主库比自己多个的数据

systemctl   stop  firewalld

setenforce  0

物理连接能通 

配置主数据库服务器

1  用户授权  

grant  replication  slave  on   *.*  to   plj@"%"  identified by  "123456";

 

2 修改配置文件

vim /etc/my.cnf

server_id=12

log_bin=master12

log_format="mixed"

:wq

3 重启数据服务

systemctl  restart  MySQLd

4 查看当前使用的 binlog日志信息

mysql  -uroot   -p123123

mysql> show master status;

配置从数据库服务器

1  验证主库授权用户

mysql  -h292.168.4.12   -uplj   -p123456

mysql> 

2  修改配置文件

vim /etc/my.cnf

server_id=11

log_bin=slave11   #可选

log_format="mixed"

:wq

3  重启数据服务

systemctl  restart  mysqld

4  管理员登录把自己指定为从数据库服务器

mysql -uroot  -p654321

mysql> show  slave status\G;

mysql> change  master  to  master_host="192.168.4.12",master_user="plj",master_password="123456",master_log_file="master12.000001",master_log_pos=154;

5  启动slave 进程

mysql> start  slave;

6  查看slave 进程状态信息

mysql> show  slave 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>stop  slave;

mysql>change  master  to  选项=值,选项=值;

mysql>start  slave;

cd /var/lib/mysql/

master.info   连接主数据库服务器的信息

relay-log.info  中继日志文件

localhost-relay-bin.xxxxxx   中继日志文件

localhost-relay-bin.index     中继日志索引文件

把一台数据库服务器恢复为独立的数据库服务器。

#cd /var/lib/mysql

#rm -rf  master.info   relay-log.info    localhost-relay-bin.*

#systemctl  restart   mysqld

让从数据库服务器临时不同步数据(想同步再启动就可以了)

mysql>stop  slave ;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

day06

mysql主从同步结构模式

一主一从

一主多从

主从从

主主结构(互为主从)

+++++++++++++++++++++++++++++

mysql主从同步配置参数

主数据库服务器使用的配置参数

/etc/my.cnf

[mysqld]

binlog_do_db=数据库名,数据库名    #只允许同步的库

binlog_ignore_db=数据库名,数据库名  #只不允许同步的库

:wq

#systemctl  restart   mysqld

从数据库服务器使用的配置参数

/etc/my.cnf

[mysqld]

log_slave_updates # 允许级联复制

relay_log=名       #中继日志文件名

replicate_do_db=数据库名,数据库名 #只同步的库

replicate_ignore_db=数据库名,数据库名  #只不同步的库

:wq

#systemctl  restart   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

[root@localhost ~]# cat /etc/maxscale.cnf

[maxscale]

threads=1

[server1]

type=server

address=192.168.4.12

port=3306

protocol=MySQLBackend

[server2]

type=server

address=192.168.4.11

port=3306

protocol=MySQLBackend

[MySQL Monitor]

type=monitor

module=mysqlmon

servers=server1,server2

user=scalemon

passwd=111111

monitor_interval=10000

[Read-Write Service]

type=service

router=readwritesplit

servers=server1,server2

user=maxscale

passwd=111111

max_slave_connections=100%

[MaxAdmin Service]

type=service

router=cli

[Read-Write Listener]

type=listener

service=Read-Write Service

protocol=MySQLClient

port=4006

[MaxAdmin Listener]

type=listener

service=MaxAdmin Service

protocol=maxscaled

socket=default

port=6606

[root@localhost ~]# 

配置文件说明

0 设置服务运行启动的线程数量 

[maxscale]

1 数据库服务器成员  [server1]    [server2]

2 监控数据库服务器成员列表 [MySQL Monitor]

user=scalemon     //用户名

passwd=111111   //密码

3 指定在那些数据库服务器之间做读写分离

[Read-Write Service]

user=maxscale     //用户名

passwd=111111  //密码

4 定义管理服务       

[MaxAdmin Service]  

5 读写分离服务监控的端口号 

[Read-Write Listener]

   

6 指定管理服务监听的端口号

[MaxAdmin Listener]

2.2根据配置文件的设置添加授权用户(12   11)

scalemon用户

grant replication slave, replication client on *.* to scalemon@"%"  identified by “111111”;  //创建监控用户

maxscale用户

grant select on mysql.* to maxscale@'%' identified by "111111”;  //创建路由用户

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

[root@localhost ~]#

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在主从数据库服务器上客户端访问数据时使用的连接用户

mysql>grant all on  *.*  to student@"%" identified by 

"123456";

客户端访问

#which mysql

#mysql  -h292.168.4.10   -P4006 -ustudent   -p123456

mysql>select   ---->  11   从

mysql>insert   ---->  12   主

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql性能调优

数据库服务器处理客户端的访问速度特别慢,可能是由哪些原因

造成的?

1 网络带宽不够

2 服务器配置太低

3提供数据库服务软件版本低

查看服务运行时的运行参数(变量)

mysql  -uroot  -p123123

mysql> show  variables  like  "%关键字%";

mysql> set  [GLOBAL]  变量名=值;

vim /etc/my.cnf

[mysqld]

变量=值

:wq

并发连接数

max_connections

mysql> show  global  status like "%max_used_conn%";

Max_used_connections/max_connections=0.85  * 100%

连接超时时间

mysql>show  variables  like   "%timeout%";

connect_timeout=10

wait_timeout=28800 

允许保存在缓存中被重用的线程数量

thread_cache_size=10

为所有线程缓存的打开的表的数量

table_open_cache =3

查询缓存参数设置?

mysql> show  variables like  "query_cache%";

query_cache_type=0/1/2

1  select * from t1;   <1m

2  select in_sql_cache * from t1;

query_cache_wlock_invalidate  off

对myisam 存储引擎有效。

pc1   select   name  from t1 where name="jim"; 

          name=jim

pc2  select   name  from t1 where name="jim";

pc3  update  t1  set  name="tom" where name="jim";

显示查询缓存统计信息

mysql>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网络结构有问题


标题名称:MySQL数据管理6
当前URL:http://azwzsj.com/article/pjipei.html