• ADADADADAD

    MySQL数据管理6[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:58:19

    作者:文/会员上传

    简介:

    配置主从同步的步骤环境准备从一定要有主库比自己多个的数据systemctlstop firewalldsetenforce 0物理连接能通配置主数据库服务器1 用户授权 grant replication slave on*.

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    配置主从同步的步骤

    环境准备

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

    systemctlstop firewalld

    setenforce 0

    物理连接能通

    配置主数据库服务器

    1 用户授权

    grant replication slave on*.* toplj@"%" 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: 报错信息

    出错原因: 从服务器连接不上主数据库服务器

    pingfirewalldselinux

    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.inforelay-log.infolocalhost-relay-bin.*

    #systemctl restartmysqld

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

    mysql>stop slave ;

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

    day06

    mysql主从同步结构模式

    一主一从

    一主多从

    主从从

    主主结构(互为主从)

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

    mysql主从同步配置参数

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

    /etc/my.cnf

    [mysqld]

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

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

    :wq

    #systemctl restartmysqld

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

    /etc/my.cnf

    [mysqld]

    log_slave_updates # 允许级联复制

    relay_log=名#中继日志文件名

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

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

    :wq

    #systemctl restartmysqld

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

    中间件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根据配置文件的设置添加授权用户(1211)

    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 存储引擎有效。

    pc1selectname from t1 where name="jim";

    name=jim

    pc2 selectname 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.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql主从同步