加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建

发布时间:2020-12-11 23:57:34 所属栏目:MySql教程 来源:网络整理
导读:一、Centos6下安装Mysql 检测下系统有没有自带的mysql:yum list installed | grep mysql,?如果已经有的话执行命令yum -y remove mysql-libs.x86_64卸载已经安装的mysql。 1.?系统约定 安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysq

一、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 usrlocalmysql

4. 创建数据仓库目录

mkdir p datamysql

5. 新建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

etcinit.dmysql

修改以下内容:

9. 启动和远程连接mysql

etcinit.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` (
 `id` INT( 5 ) UNSIGNED NOT NULL<span> AUTO_INCREMENT,`username` VARCHAR( 20 ) NOT NULL<span>,`password` CHAR( 32 ) NOT NULL<span>,`last_update` DATETIME NOT NULL<span>,`number` FLOAT( 10 ) NOT NULL<span>,`content` TEXT NOT NULL<span>,PRIMARY KEY<span> ( `id` )

 ) ENGINE = MYISAM ;</span></span></span></span></span></span></span></span></span></span></pre>

在从库查看主库新建的表是否存在:

?

可以看出从库与主库中信息一致,主从配置成功。为了更进一步验证在从库上输入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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读