Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建
一、Centos6下安装Mysql检测下系统有没有自带的mysql:yum list installed | grep mysql,?如果已经有的话执行命令yum -y remove mysql-libs.x86_64卸载已经安装的mysql。 1.?系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql 2. 下载mysql执行如下命名: mkdir p datadatasoftware? --下载安装包? 在官网:?中,选择以下版本的mysql下载: wget http:dev.mysql.comgetDownloadsMySQLmysql.linuxglibc2.x86_64.tar.gz此时如果提示bash: wget: command not found,执行yum -y install wget,再执行wget下载命令 3. 解压压缩包到目标位置cd datasoftware--解压压缩包 tar xzvf softwaremysql.linuxglibc2.x86_64.tar.gz--移动并修改文件名 mv softwaremysql.linuxglibc2.x86_64 usrlocalmysql4. 创建数据仓库目录mkdir p datamysql5. 新建mysql用户、组及目录 useradd r s sbinnologin g mysql mysql d usrlocalmysql这里如果提示useradd:“mysql”组不存在,执行groupadd mysql添加组以后再执行 6. 改变目录属有者cd usrlocalR mysql datamysql? 7. 配置参数binmysqld说明: 这里可能会报如下的错误 ? 解决方法:yum install -y libaio ?解决完错误以后继续执行:# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql ?此处需要注意记录生成的临时密码,如上文结尾处的:)u!7G!Q3jZ>& 继续执行: binmysql_ssl_rsa_setup? 8. 修改系统配置文件cd usrlocalmysqlsupport.cnf etcetcinit.dmysql修改以下内容: 9. 启动和远程连接mysqletcinit.dmysql start--登陆mysql mysql hlocalhost uroot p
如果出现:-bash: mysql: command not found 就执行:?# ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行 --输入第6步生成的临时密码 --修改密码 mysql> set password=password('123456'); --设置root账户的host地址(修改了才可以远程连接) mysql . @ identified flush ;--查看用户信息 mysql host, ;--这里就可以使用远程连接测试了; ? 10. Mysql操作命令--退出mysql命令窗口 #exit --查看mysql状态 #service mysql status --停止mysql #service mysql stop --启动mysql #service mysql start 二、Mysql主从复制的搭建环境准备: 首先把前面安装好mysql的虚拟机克隆一个作为mysql的从节点,克隆方法参照我的文章: 主库所在服务器IP地址为192.168.168.130,从库所在服务器IP地址为192.168.168.131 1.? MySql主从复制原理mysql 主从复制原理: 1). master 将操作记录到二进制日志(binary log)中; 2). slave IO 线程 将master的binary log events读写到它的中继日志(relay log); 3). slave SQL线程读取中继日志,将重做记录数据到数据库中。 MySQL的主从同步是一个很成熟的架构,优点为: 1) 在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力; 2) 在从主服务器进行备份,避免备份期间影响主服务器服务; 3) 当主服务器出现问题时,可以切换到从服务器。 2. 主库192.168.168.130设置修改主库my.cnf,主要是设置个不一样的server-id和log-bin,红色部分为新增部分。 vim /etc/my.cnf [mysqld] datadir=/data/mysql #socket=/var/lib/mysql/mysql.sock #user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-bin=mysql-bin #需要启用二进制日志 server-id=1 # 用于标识不同的数据库服务器 binlog-ignore-db=information_schema #忽略记录二进制日志的数据库 binlog-ignore-db=cluster #忽略记录二进制日志的数据库 binlog-ignore-db=mysql #忽略记录二进制日志的数据库重新启动主库生效: service mysql restart登录主库: mysql -hlocalhost -uroot -p? 赋予从库权限帐号: grant all privileges on *.* to '用户名'@'%' identified by '密码';本文建立的账户名称为root,密码为123456 ? 查看是否创建用户成功: select user,host from mysql.user;? 显示主库信息,记录File和Position,从库设置将会用到: show master status;? 3. 从库192.168.168.131设置修改从库配置文件/etc/my.cnf vim /etc/my.cnf [mysqld] datadir=/data/mysql #socket=/var/lib/mysql/mysql.sock #user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 log-bin=mysql-bin #需要启用二进制日志 server-id=2 #用于标识不同的数据库服务器 binlog-ignore-db=information_schema #忽略记录二进制日志的数据库 binlog-ignore-db=cluster #忽略记录二进制日志的数据库 binlog-ignore-db=mysql #忽略记录二进制日志的数据库 replicate-do-db=test #指定复制的数据库 replicate-ignore-db=mysql #不复制的数据库 #log-slave-updates #该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要 #slave-skip-errors=all slave-net-timeout=60重新启动从库生效: service mysql restart登录从库: mysql -u root -p? 停止从库:? stop slave;? ?连接MASTER ,MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position: change master to master_host='192.168.152.130',master_user='root',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=434;? 说明: 上述第命令语句中的master_log_file='mysql-bin.000002',master_log_pos=434;对应为前面在主库中执行的show master status;结果。 ?启动从库服务: start slave;? 4. 测试主从复制是否生效在主库服务器上新建一个数据库test,然后在里面新建一张表 create database test; use test; CREATE TABLE `myTest` (
在从库查看主库新建的表是否存在: ? 可以看出从库与主库中信息一致,主从配置成功。为了更进一步验证在从库上输入show slave statusG ? Slave_IO_Running: Yes(网络正常); Slave_SQL_Running: Yes(表结构正常) 进一步验证了以上过程的正确性。 参考文章: 1. centos6下安装mysql:https://www.cnblogs.com/jr1260/p/6590232.html 2.?CentOS 6.5 下MySql主从、主主配置:https://www.cnblogs.com/whutxldwhj/p/5970540.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |