基于cestos6.5_64bit_MySql5.7.14数据库的安装以及主从复制的配置

http://www.cnblogs.com/tuhooo/p/5189236.html
http://www.cnblogs.com/oo-oo/p/mysql_master_slave01.html
http://www.cnblogs.com/php5/p/4180232.html
昨天花了一下午在CentOS6.5 上安装了MySQL,版本为5.7.14,下面介绍一下我安装时候出现的问题
以及解决方法,供大家参考。
环境:
用的vmare9.0
Linux:Centos6.5_64Bit
Msyql_Version: MySql5.7.14_64Bit
Master:192.168.43.129
Slave:192.168.43.130
MySQL安装地址:/usr/local/mysql
MySQL数据目录:/usr/local/mysql/data
主MySQL二进制日志(binlog)文件:/usr/local/mysql/mysql-binlog
从MySQL中继日志文件:/usr/local/mysql/mysql-relay-binlog
1/清除残留
rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉
rpm -e mysql  // 普通删除模式
rpm rpm –nodeps -e mysql  // 强力删除模式
如果使用上面命令删除时,提示有依赖的其它文件,
则用该命令可以对其进行强力删除在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!
在电脑中查找有关mysql的文件尽可能删掉,如果有的话
比如/etc/my.cnf或者/etc/mysql

2/下载及解压安装包
官方下载地址为:http://dev.mysql.com/downloads/mysql/
这里写图片描述
然后把它解压缩到Linux文件系统的/usr/local/目录下,好像默认的安装目录也是这个
tar –xzvf my mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
mv my mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz mysql //起个简单的名字

3/正式开始装了
安装这个软件我参考一些网上的教程,但是看上去有些迷糊也不确定对不对
为了正确起见我还是跑到官网找教程
2.2 Installing MySQL on Unix/Linux Using Generic Binaries
http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
首先MySQL依赖于库libaio,所以我们就先安装这个库
具体命令如下
shell> yum search libaio # search for info
shell> yum install libaio # install library
我安装的时候已经是最新的库了,所以啥都没干
这里写图片描述
解压完成之后的目录如上所示
shell> groupadd mysql #添加用户组
shell> useradd -r -g mysql -s /bin/false mysql #添加mysql用户
shell> cd /usr/local #最好是安装在这个目录下,如果不是可能会报错
shell> cd mysql #进入到解压的目录下面
shell> mkdir mysql-files #创建此文件夹
shell> chmod 750 mysql-files #改文件夹的权限
shell> chown -R mysql . # .此时代表的文件夹是/usr/local/mysql,改当前文件夹及子目录的所有者
shell> chgrp -R mysql . # .此时代表的文件夹是/usr/local/mysql,改当前文件夹及子目录的用户组
shell> bin/mysqld –initialize –user=mysql # MySQL 5.7.6 and up #这句好像是正式安装了,它会给你一个root的初始密码,最好要记住,记不住的话也行后面也有解决办法
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
shell> chown -R root .
shell> chown -R mysql data mysql-files
# 这个data文件夹怎么突然冒出来的,其实不是,在之前执行bin/mysqld –initialize –user=mysql # MySQL 5.7.6 and up的时候自动在
/usr/local/mysql目录下生成一个目录data
shell> bin/mysqld_safe –user=mysql & #这个是干啥的我也不知道,好像是什么PID table啥的,后面就是它最烦
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server #服务加到启动项的

4/安装后的配置
在目录/usr/local/mysql/support-files/下有个文件叫my-default.cnf
那么我们就是要修改一下这个配置文件
这里写图片描述
这里basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
log_bin=/usr/local/mysql/mysql-binlog #为master的SQL中继日志文件
改完之后复制一份到/etc/目录下,重命名为my.cnf就是我们在最开始删的那个
然后在/etc/profile里面也添加一个路径
这里写图片描述
在文件末尾添加如上行
安装配置过程算是结束了

5/问题
一个软件就这样安装完了怎么行呢?来测试下
service mysql.server start启动服务(root下启动服务的)
这里写图片描述
给我报着么个错,我也不知道怎么纠错,反正就在网上找
总之这篇博文教我怎么解决这个问题,
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解决办法
http://blog.sina.com.cn/s/blog_637e04c9010117ri.html
该博文里面有我就不在这引述了,反正我是通过重启解决的
这里写图片描述

6/忘记初始密码
之前在安装的时候不是有一步会给个初始密码你么,这在以前(如果记住密码请跳过此问题)的mysql的时候是没有初始密码的,直接回车就到数据库里面去了
这里写图片描述
然后就悲催了,密码忘记了
怎么解决这个问题的呢
网上有的方法是以前的,就是改/etc/my.cnf配置,不要密码进去之后
使用命令:
show databases;
使用命令切换到mysql数据库:
use mysql;
使用命令更改root密码:
UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;(不可行,在5.7.11版本下
如果update不能修改密码 就用SET PASSWORD FOR name=PASSWORD(‘operater’)
http://blog.csdn.net/huangliang0703/article/details/50014985
刷新权限:
FLUSH PRIVILEGES;
然后退出,重新登录:
quit
重新登录:
mysql -uroot -p
出现输入密码提示,输入新的密码即可登录
悲催的是user表里面根本就没有这一项Password好么,只好另寻他路
修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
service mysqld restart后,即可直接用mysql进入
mysql> update mysql.user set authentication_string=password(‘123qwe’) where user=’root’ and Host = ‘localhost’;
mysql> flush privileges;
mysql> quit;
将/etc/my.cnf文件还原,重新启动mysql:service mysql restart,这个时候可以使用mysql -u root -p’123qwe’进入了

6.1mysql command not found
遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:
把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:
cd /usr/local/bin
# ln -fs /MYSQLPATH/bin/mysql mysql
还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。
注:其中MYSQLPATH是mysql的实际安装路径,比如此处是:/usr/local/mysql/

7/主从复制
在VMARE里边克隆当前master虚拟节点:
这里写图片描述
 1、master创建复制帐号:
    这里写图片描述
    如果只是单纯的一主多从,则只需要在主MySQL上建立这个帐号,考虑到以后可能需要做故障处理或切换主MySQL,从MySQL建立同样的帐号
  2、修改主MySQL配置文件my.cnf
    [mysqld]
    server-id=1 (每个从MySQL的server-id必须不同)
    log-bin=/usr/local/mysql/mysql-binlog #这个之前已经在master设置过
    重启MySQL:service mysql restart
    查看主MySQL状态:mysql>show master status;
这里写图片描述
3、修改从MySQL配置文件my.cnf(注意配置完成后复制到 “/etc/my.cnf”先删除后复制)
    [mysqld]
    server-id=2(每个从MySQL的server-id必须不同)
    log-bin=/usr/local/mysql/mysql-binlog
    relay-log=/usr/local/mysql/relay-log
4、重启从MySQL,执行启动复制
mysql>change master to master_host=’192.168.43.129’,master_user=’repl’,master_password=’operater’,master_log_file=’mysql-binlog.000002’,master_log_pos=944;
    mysql>start slave;
查看slave从节点IO和SQL线程状态:
这里写图片描述
可以看到Slave_IO_Running:no
只有这两项都为yes,从节点才能正常从master机器复制与同步,查看mysql错误日志文件:
这里写图片描述
最后一行提示UUID相同,那么修改slave节点的UUID:
cd /usr/local/mysql/data/
这里写图片描述
只要修改一个数字就行 保持其与master节点UUID不同即可
重启slave节点数据库,进入之后:
 mysql>start slave;
启动线程

主从配置基本完成,可以在主MySQL创建表,看看从MySQL是否生成新表:
测试:
在master创建Ceaser(我觉得这个名字很帅,译名:凯撒)数据库
这里写图片描述
创建一张表:
这里写图片描述
转到slave节点看看是不是数据被同步:
这里写图片描述
OK到此mysql主从复制配置完毕。
最后我们要在宿主机使用navicate连接虚拟机里边的mysql数据库,这时候我们需要设置一些访问权限(主从都要设置):
这里写图片描述
下一篇日志将会在Java程序中使用基于mysql主从复制的读写分离机制

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值