Mysql主从搭建
一、安装Mysql服务
1、检查服务器是否已经安装了MySQL(一般情况下centos会自带MySQL)
执行:rpm -qa |grep mysql
2、卸载MySQL
对第1步查询出来的MySQL分别执行:
yum remove mysql-5.1.73-8.el6_8.x86_64
yum remove mysql-libs-5.1.73-8.el6_8.x86_64
3、检查MySQL是否卸载完成
执行:rpm -qa |grep mysql,如果没有任何结果表明MySQL已经卸载完
4、查询MySQL对应的目录或文件
执行:whereis mysql
5、删除第4步查询出来的目录或文件(如果第4步没有结果,那么此步不用执行)
6、检查MySQL用户组和用户是否存在
分别执行:
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
7、创建MySQL用户组和用户(如果第6步没有结果,那么执行此步)
分别执行:
groupadd mysql -- 创建mysql组
useradd -r -g mysql mysql --创建mysql用户属于mysql组
8、从官方网站(https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz)下载MySQL包mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz并放到/usr/local目录下
搭建
1、进入/usr/local执行:tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2、将解压后的文件夹改名
进入/usr/local执行:mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
3、创建data目录
进入/usr/local/mysql执行:mkdir data
4、更改MySQL所有的目录、文件所属的用户组、用户、访问权限
进入/usr/local分别执行:
chown -R mysql:mysql /usr/local/mysql --修改目录所属用户
chmod -R 755 /usr/local/mysql --给目赋权
5、安装(一定要记住安装日志文末的密码)
进入/usr/local/mysql/bin执行:
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
上图中标红的是密码
6、添加配置文件my.cnf
进入/etc执行:vi my.cnf,然后将下面的内容复制到配置文件中
[mysqld]
#mysql主目录
basedir=/usr/local/mysql
#mysql data目录
datadir=/usr/local/mysql/data
#使用mysql -u root-p 登录socket配置
socket = /usr/local/mysql/data/mysql.sock
port = 3306
#模式配置
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
#字符集配置
character-set-server=utf8
####启用二进制日志 主从配置开始
log-bin=mysql-bin-master
#本机数据库 ID 标示,主从配置中ID要唯一
server-id=1
#可以被从服务器复制的库, 二进制需要同步的数据库名
#如果有多个数据库就每行一个,如果不指定的话默认就是所有数据库.
binlog-do-db=test
#不可以被从服务器复制的库
binlog-ignore-db=mysql
# 从库只需要配置这一条
server-id=2
####主从配置结束
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client]
port=3306
#使用mysql -u root-p 登录socket配置
socket=/usr/local/mysql/data/mysql.sock
#字符集配置
default-character-set=utf8
[mysql]
default-character-set=utf8
7、启动
进入/usr/local/mysql/support-files执行:./mysql.server start
8、检查MySQL是否启动成功
执行:ps -ef|grep mysql
9、客户端连接,如果无法使用mysql -u root -p命令,则需要添加映射
ln -s /usr/local/mysql/bin/mysql /usr/bin 映射
mysql -u root -p
如果报错则需要修改mysql.conf文件添加clientid
[client]
port=3306
socket=/usr/local/mysql/data/mysql.sock
修改后重启mysqld服务
service myqld restart
tail -f /var/log/messages
二、主从配置:
主库配置:
#授权主从同步slave用户权限,先登录mysql -u root -p
grant replication slave on *.* to slave@ip identified by "123456"; #ip地址为从库的IP
#查看状态信息
show master status;
查看主服务器主从同步状态:
show processlist\G
从库配置:
1、/etc/my.cnf 文件中添加配置server-id=2 ,并重启服务
2、登录从库mysql -u root -p
3、执行:change master to master_host='10.xx.xx.xx',master_user='root',master_password='xxxx'; #IP地址为主服务器地址。
4、start slave; #启动slave
5、show slave status\G; #查看状态
可以看到出现了两个为 YES,则主从配置成功了
测试主从同步
在主库表中添加数据,在从库表中查询数据,从库有数据则配置正常