千家信息网

MySQL数据管理6

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,配置主从同步的步骤环境准备从一定要有主库比自己多个的数据systemctl stop firewalldsetenforce 0物理连接能通配置主数据库服务器1 用户授权grant replicati
千家信息网最后更新 2026年10月31日MySQL数据管理6

配置主从同步的步骤

环境准备

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

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







数据 服务 数据库 服务器 配置 日志 文件 同步 用户 查询 主从 主机 信息 客户 命令 客户端 中继 参数 程序 缓存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技发展 亿策互联网科技 云电互联网科技 百单互联网科技有限公司 互联网科技视频素材 四川狮子座互联网科技 甘肃拓世互联网科技有限公司 深圳卡尔迅互联网科技有限公司怎么样 青海省互联网新科技 互联网科技公司需要的职位 广州慧亚互联网科技怎么样 重庆互联网医院沙龙医盟信息科技 岳阳华臻互联网科技有限公司 晓花互联网科技有限公司网址 佛山市拉法互联网科技有限公司 互联网科技如何创业 互联网营销推广黑科技 广州燕处互联网科技有限公司 三亚科技创新互联网基地 深圳互联网科技园地址 手冲咖啡和咖啡机区别 南京欣网互联网络科技 广东猪兼强互联网科技有限公司 网络科技有限互联网 苏州互联网科技贷款公司 长亮科技 互联网金融 重庆威客帮互联网科技 互联网金融运营模式中的金融科技 亚光科技低轨卫星互联网 华人运通互联网科技公司
0