mariadb的yum源
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64/
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
参考安装:通常二进制格式安装MariaDB:
(1)准备数据目录
以/mydata/data目录为例
(2)安装配置mariadb
#useradd -r mysql
#tar xf mariadb-VERSION.tar.gz -C /usr/local
#cd /usr/local
#ln -sv mariadb-VERSION mysql
#chown -R root:mysql ./*
#scripts/mysql_install_db --user=mysql -datadir=/mydata/data
#cp supprot-files/mysqld.server /etc/init.d/mysqld
#chkconfig --add mysqld
(3)提供配置文件
ini格式的配置文件;各程序均可通过此配置文件获取信息
[program_name]
OS Vendor提供mariadb rpm包安装配置文件依次查找次序:
/etc/mysql/my.cnf --> /etc/my.cnf --> --defalult-extra-file=/PATH/TO/CONF_FILE --> ~/./my.cnf
通常二进制格式安装的服务程序其配置文件查找次序
/etc/my.cnf --> /etc/mysql/my.cnf --> --defalult-extra-file=/PATH/TO/CONF_FILE --> ~/./my.cnf
获取其读取次序:
mysqld --verbose --help
# cp supprot-files/mysql-large.conf /etc/my.cnf
/etc/my.cnf添加
datadir=/mysql/data
user=mysql
添加三个选项:
datadir=/mydata/data
Innodb_file_per_table = ON
skip_name_resolve = ON
(4)启动服务
#service mysqld start
环境:
10.10.10.196 CentOS 7,yum直接安装mariadb-server-5.5.64-1.el7.x86_64
10.10.10.197 CentOS 6,二进制编译安装mariadb-5.5.36-linux-x86_64.tar.gz
所有服务器时间要同步
主服务器配置:10.10.10.196
a、启用二进制日志binary logs,并配置server_id
b、启动mysql查看配置是否生效,并记录当前正在使用的二进制日志文件名和起始位置
c、创建用户并授权复制权限,(REPLICATION SLAVE, REPLICATION CLIENT)
从服务配置:10.10.10.197
a、启动中继日志,并配置server_id
b、启动mysql查看配置是否生效
c、使用主服务器上的带有复制权限的用户,连接至主服务器,注意填写主服务器二进制日志文件和起始位置
使用HELP CHANGE MASTER TO;查看参数
语句: CHANGE MASTER TO MASTER_HOST=“10.10.10.196”,MASTER_USER=“replicate”,MASTER_PASSWORD=“replicate”,MASTER_LOG_FILE=“master-bin.000001”,MASTER_LOG_POS=245;
d、启动复制线程,并查看
测试:
主服务器上新建一个测试数据库
从服务器上测试查看:
复制时应该注意的问题:
1、如何限制从服务器只读?
在从服务器启动read_only;但仅对非具有SUPER权限的用户有效;
阻止所有用户,从服务器启动一个终端不退出:MariaDB> FLUSH TABLES WITH READ LOCK;
2、如何保证主从复制时的事务安全?
在master节点启用参数:
sync_binlog = on
如果用到的为InnoDB存储引擎:
innodb_flush_logs_at_trx_commit=on,在事务提交时立即将事务日志缓冲区中与事物相关的数据刷写至磁盘上的事务日志中
innodb_support_xa=on,分布式提交
在slave节点:
skip_slave_start=on,开机时是否自动启动复制线程,建议为on
主节点:
sync_master_info = 1
从节点
sync_relay_log = 1
在slave节点:
skip_slave_start=on,开机时是否自动启动复制线程,建议为on
主节点:
sync_master_info = 1
从节点
sync_relay_log = 1
sync_relay_log_info = 1