首页 > 数据库 > mysql > mysql编译安装及主从配置
2015
06-12

mysql编译安装及主从配置

一.环境准备

系统:centos6.5 X86_64

主数据库:192.168.1.5

从数据库:192.168.1.6

软件:mysql-5.5.24.tar.gz

二.编译安装MySQL

1.防火墙设置

# vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 
-j ACCEPT   #允许3306端口
#service iptables restart      #重启防火墙使配置生效

2.关闭selinux

# vim /etc/selinux/config
SELINUX=disabled       #selinux关闭状态
# setenforce 0    #使配置立即生效

3.编译安装

# yum install make gcc gcc-c++ openssl openssl-devel pcre-devel gd cmake 
ncurses ncurses-devel -y
# groupadd mysql                  #添加mysql组
# useradd -M -g mysql -s /sbin/nologin mysql #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
# mkdir -p /data/mysql       #创建MySQL数据库存放目录
# chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录的属主属组
# mkdir -p /usr/local/mysql     #创建MySQL安装目录
# cd /usr/local/src          #进入软件包存放目录
# tar xf mysql-5.5.24.tar.gz 
# cd mysql-5.5.24
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DSYSCONFDIR=/etc 
-DMYSQL_DATADIR=/data/mysql/data 
-DINSTALL_MANDIR=/usr/share/man 
-DMYSQL_TCP_PORT=3306 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
-DDEFAULT_CHARSET=utf8 
-DEXTRA_CHARSETS=all 
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_READLINE=1 -DWITH_SSL=system 
-DWITH_EMBEDDED_SERVER=1 
-DENABLED_LOCAL_INFILE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1
# make && make install
# cd /usr/local/mysql      #进入MySQL安装目录
# chown -R mysql:mysql .    #更改所属用户及组
# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql 
--datadir=/data/mysql #生成mysql系统数据库
# cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld  #把Mysql加入系统启动
# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf            #覆盖掉原来的作为配置文件
# chkconfig mysqld on  #加入开机启动
# vim /etc/rc.d/init.d/mysqld
basedir=/usr/local/mysql   #MySQL程序安装路径  
datadir=/data/mysql      #MySQl数据库存放目录 
# service mysqld start    #启动服务
# vim /etc/profile      #把mysql服务加入系统环境变量
export PATH=$PATH:/usr/local/mysql/bin
# source /etc/profile     #使环境变量生效
# mkdir /var/lib/mysql    #创建目录
# ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock   #添加软链接
# mysqladmin -uroot password 'tsb-net' #root用户密码为tsb-net
# service mysqld restart  #重启服务

三.配置MySQL主从

1.配置主服务器

# mysql -u root -p          #进入MySQL控制台
> create database osyunweidb;   #建立数据库osyunweidb
> insert into mysql.user(Host,User,Password) values
('localhost','osyunweiuser',password('123456'));   #创建用户osyunweiuser,密码123456
> grant all on osyunweidb.* to 'osyunweiuser'@'192.168.1.5' identified 
by '123456' with grant option;  #授权用户osyunweiuser从192.168.1.5完全访问数据库
> insert into mysql.user(Host,User,Password) values
('localhost','osyunweidbbak',password('123456'));   #建立MySQL主从数据库同步用户osyunweidbbak密码123456
> flush privileges;   #刷新系统授权表
> grant replication slave  on *.* to 'osyunweidbbak'@'192.168.1.6' identified 
by '123456' with grant option; 
#授权用户osyunweidbbak只能从192.168.1.6这个IP访问主服务器上面的数据库,并且只具有数据库备份的权限

2.把MySQL主服务器中的数据库osyunweidb导入到MySQL从服务器中

2.1.导出数据库osyunweidb

# mysql -u root -p             #进入MySQL控制台
> flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入
> exit
# mysqldump -u root -p --default-character-set=utf8 --opt -Q -R 
--skip-lock-tables osyunweidb > /home/osyunweidbbak.sql    #导出数据库osyunweidb保存在home目录下命名为osyunweidbbak.sql 
# yum install openssh-client* -y  #安装了就可以使用scp命令了
# scp /home/osyunweidbbak.sql root@192.168.1.6:/home      #把数据库文件上传到从服务器的home目录下面

2.2.导入数据库到MySQL从服务器

# mysql -u root -p              #进入从服务器MySQL控制台
> create database osyunweidb;   #创建数据库
> use osyunweidb          #进入数据库
> source  /home/osyunweidbbak.sql #导入备份文件到数据库

四.编辑配置文件

1.配置MySQL主服务器

# vim /etc/my.cnf   #编辑配置文件,在[mysqld]部分配置下面内容
server-id=1      #服务器id
log-bin=mysql-bin    #启动MySQ二进制日志系统
binlog-do-db=osyunweidb  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库
# service mysqld restart #重启MySQL服务
# mysql -u root -p   #进入MySQL控制台验证

主数据库位置.png

> show variables like 'log_%'; #可以验证二进制日志是否已经启动

2.配置MySQL从服务器

# vim /etc/my.cnf        #编辑配置文件,在[mysqld]部分添加下面内容
server-id=2            #设置服务器id,不能与主数据库相同
log-bin=mysql-bin        #启动MySQ二进制日志系统
replicate-do-db=osyunweidb   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
read_only             #设置数据库只读
# service mysqld restart   #重启MySQL
# mysql -u root -p      #进入MySQL控制台
> show variables like 'server_id';
> slave stop;   #停止slave同步进程
> change master to master_host='192.168.1.5',master_user='osyunweidbbak',master_password='123456',master_log_file='mysql-bin.000011' ,master_log_pos=107;    #执行同步语句
> slave start;          #开启slave同步进程
> show slave status\G      #查看slave状态

从库同步到主库的位置.png

从库状态.png

看到正常了,需要主数据库解除锁定

> unlock tables;   #解除锁定

五.测试

1.在MySQL主服务器创建test表

# mysql -u root -p  #进入MySQL控制台

测试主库.png

2.在MySQL从服务器上查看

# mysql -u root -p  #进入MySQL控制台

从库测试结果.png

MySQL主从配置完成,有问题大家可以留言…..




最后编辑:
作者:1084471221
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复