linux中安装多个mysql_liunx系统下安装多个MySql数据库并做主从配置

在网上搜索了很多资料,都没有看到像样的文档,思路不是很清晰,对第一次安装的朋友来说较为困难,经过长时间的安装尝试和查询网上零碎的知识点,终于成功的完成Linux系统下多MySql数据库安装和主从配置,现在分享给大家。

前提:

1、关闭Liunx系统的防火墙,如果忘了,你下面的测试连接必定会失败,切记,切记,切记。

2、下载linux系统自带的mysql

查找已安装的myslq 版本:#rpm  -qa | grep  mysql     #(注意大小写,如果mysql 不行就换MySQL)

将搜索出的包名卸载:

#rpm -e  --nodeps mysql-5 .0 .22-2 .1 .0 .1   #(nodeps表示强制删除)

再次查找该包名,如果没有结果输出则表明已将该版本的mysql卸载了 ;

3、yum安装lrzsz和cmake

yum -y install lrzsz;

yum -y install cmake;

首先熟悉MySql数据库,很多人都是直接安装原生版的MySql数据库(就是官网上下载的数据库安装包),也有人用的是MySql的衍生版数据库,如percona,我用的就是这种,下面我会分别说明原生版和衍生版MySql数据库的安装和主从配置。

Linux下多个原生版MySql数据库的安装及主从配置:

1、下载MySql数据库http://dev.mysql.com/downloads/mysql/5.5.html#downloads

c7123e76b0d15b3eb97bedc3ac1c18af.png

下载的是64位系统,我使用的是CentOS6.6 64位系统

2、安装第一个数据库

-- cd /usr/local/src

-- mkdir mysql

-- cd mysql

-- rz(上传安装包)

-- tar -xvf MySQL-5.5.47-1.linux2.6.x86_64.rpm-bundle.tar

-- rpm -ivh MySQL-server-5.5.47-1.linux2.6.x86_64.rpm

-- rpm -ivh MySQL-client-5.5.47-1.linux2.6.x86_64.rpm

-- rpm -ivh MySQL-devel-5.5.47-1.linux2.6.x86_64.rpm

到这里就安装结束了

3、启动数据库、修改数据库密码和登录数据库

-- service mysql start

-- mysqladmin -uroot password ‘root’

-- mysql -uroot -proot

4、提供远程连接的权限

在登录mysql的状态下执行下面的命令

-- grant all privileges on *.* to 'root' @'%' identified by 'root';

-- flush privileges;

执行结束后使用外部的工具连接库,我这里使用的是navicat,连接的时候会报这样测错误:

b11042c2d4b9c7514e05aafbfbdd2967.png

就因为这个错误,让我苦苦研究很长时间,其实解决起来很方便的。下面是解决方案:

rpm安装原生版的mysql是没有my.cnf文件的,在网上查各种资料都是让我修改my.cnf配置文件,但是我始终没有找到这个文件,后来在网上看到博友的博文这里将截图贴上如下:

d5f094b32639c4e04e53e0ed25753023.png

主要看第二种说法,我的操作如下:

-- cd /usr/share/mysql

-- cp my-medium.cnf /etc/

-- cd /etc

-- mv my-medium.cnf my.cnf

-- vim my.cnf

配置文件中许多内容都是被我注释了,但是不注释也没有太大的影响,但是主要是找到bind-address =

127.0.0.1,如果有就注释掉,没有就不用管了,我当时在我的配置文件中是没有找到这句话的。接下来是在配置文件的[mysqld]这句话下一行添

加一句话skip-name-resolve,保存文件,重新启动数据库(命令:service mysql

restart),这个时候再远程连接数据库就可以连接的上了(如图)。

b4d70c4003ec7699c7c1afb6f6521848.png

好了,到此为止第一个Mysql数据库就安装成功了。

5、第二个Mysql数据库的安装之创建目录

-- cd /usr/local

-- mkdir mysql

-- cd mysql

-- mkdir data

-- mkdir etc

-- mkdir logs

-- mkdir var

-- chown mysql:mysql /usr/local/mysql/ -R

-- cp /etc/my.cnf /usr/local/mysql/etc/

-- vim /usr/local/mysql/etc/my.cnf

这里需要将所有的内容都注释掉,然后添加下面的内容:

[mysqld]

skip-name-resolve

port=3307

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql-3307.sock

user=mysql

log_error=/usr/local/mysql/logs/db_error.log

# Disabling symbolic-links is recommended to prevent assorted securityrisks

symbolic-links=0

[mysqld_safe]

log-error=/usr/local/mysql/logs/db_error.log

pid-file=/usr/local/mysql/mysqld-3307.pid

保存配置文件,准备安装

6、安装第二个Mysql数据库、启动数据库

上面的配置文件都配置好了,接下来就是安装了

安装命令:

/usr/bin/mysql_install_db

--defaults-file=/usr/local/mysql/etc/my.cnf  --basedir=/usr/

--datadir=/usr/local/mysql/data  --user=mysql

启动数据库

/usr/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &

7、修改密码、登录、设置远程访问权限

修改密码:

mysqladmin -h127.0.0.1 -P3307 -uroot password "root"

登录:

mysql -uroot -h127.0.0.1 -P3307 -p

设置远程访问权限:

grant all privileges on *.* to 'root' @'%' identified by 'root';

flush privileges;

到此第二个数据库就安装结束了,这里测试连接就不演示了,和上面的一样,这里的skip-name-resolve已经在修改配置文件的时候加上了,正常安装启动时不会出现问题的。

8、主从配置之配置主数据库

-- vim /etc/my.cnf

在[mysqld]所在行下另起一行,加上下面的几句话

log-bin=mysql3306-bin

//test表示主从之间需要同步的数据库,如果有多个就用逗号隔开,但是需要同步的数据库较多时建议直接不写这句话,因为逗号隔开可能会存在一些问题,直接不写这句配置,表示同步整个数据库

binlog-do-db=test

server-id=101  //这里的服务id可以是任意值,但是要保证唯一

配置文件修改完毕,保存配置文件,重启数据库。

使用navicat数据库工具执行命令:SHOW MASTER STATUS查看主库的状态如下(不同数据库值不同,记住这两个值):

7cba719275e2d3f64ffaf7668993c67c.png

下面就是为从库创建用户:

grant replication slave on *.* to 'slave01'@'127.0.0.1' identified by'123456';

flush privileges;

这里的127.0.0.1需要根据你的从数据库所在机器的ip配置,要是觉得指定ip容易出错,就直接使用“%”代替。

小插曲:

上面的两句sql命令在我的navicat中无法执行,如果博友你也出现这种情况,不防直接命令行连接数据库执行这两句话,效果一样。

好了,到此为止主数据库就配置完成喽!

9、主从配置之配置从数据库

-- vim /usr/local/mysql/etc/my.cnf

这里配置相对主库较为简单,只要配置[mysqld]下中的一个server-id即可,唯一需要注意的是server-id的唯一性,保存配置文件,重新启动数据库(用

ps -ef | grep mysql 查询到3307 从数据库的进程编号,kill命令(kill

xxx)杀死3307从数据库的进程,然后重新执行启动数据库命令就好,注意从数据库启动和主数据库的不同)。

然后使用navicat工具执行下面的sql语句:

CHANGE MASTER TO

master_host='127.0.0.1',

master_user='slave01',

master_password='123456',

master_port=3306,

master_log_file=' mysql3306-bin.000002',

master_log_pos= 1942;

c25ef344db515b54782bc0ce6cf492cc.png

启动从数据库的同步:

START SLAVE;

查看从数据库的状态:

SHOW SLAVE STATUS;

注意看其中的两个值:

36558744d70b532e1c1794bdc0373704.png

这两个都为“yes”才是成功,有一个为“no”都不行。

现在就测试修改数据吧!

首先在主库中随便修改一条数据并保存,到从库刷新,看是否同步,如果是同步了恭喜你成功了。

启动从库常见问题:

报错信息:

代码如下:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

意思很明显:就是两个mysql的server-id的值不唯一或者一致了。需要修改成不一样的才行。

如果不确定各自的值为多少时可以启动两个数据后分别进入到不同端口的mysql界面查看这个server-id的值:

使用如下命令查看了一下server_id

复制代码代码如下:

mysql> show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id | 1 |

+---------------+-------+

1 row in set (0.00 sec)

如果一样的就修改下,改成不一样的就可以了,然后重新启动主库和从库,把原来的slave01用户删了,重新设置slave01用户以及后面的操作。

如果还有问题可参见这个博客,我也是从这里获得帮助的:

======================================================================================

Linux下多个衍生版Mysql的安装和主从配置:

1、下载衍生版数据库Percona,地址:https://www.percona.com/downloads/Percona-Server-5.6/LATEST/

826701aea48904e20ea2a65268891ad1.png

2、安装第一个数据库

-- cd /usr/local/src

-- mkdir mysql-percona

-- cd mysql-percona

-- rz(上传安装包)

-- tar -xvf Percona-Server-5.5.47-37.7-r764f304-el6-x86_64-bundle.tar

-- rpm -ivh Percona-Server-shared-55-5.5.47-rel37.7.el6.x86_64.rpm

-- rpm -ivh Percona-Server-client-55-5.5.47-rel37.7.el6.x86_64.rpm

-- rpm -ivh Percona-Server-server-55-5.5.47-rel37.7.el6.x86_64.rpm

这里安装结束后和原生版的不同,这个会自动生成一个my.cnf文件保存在/etc目录下。

启动服务(service mysql

start)、修改root用户密码、登录、设置远程连接权限、以及修改my.cnf配置文件内容和上面的原生版相同(注意这里是修改内容步骤一样,这里

不再需要从其他目录拷贝文件到/etc目录下并改文件名,因为衍生版安装时会自动生成一个my.cnf文件保存在/etc目录下)。

记得重新启动数据库,连接测试。

3、安装第二个衍生版Mysql数据库很简单,这里安装的步骤和安装第二个原生版Mysql是完全相同的,这里就不多说了。

4、主从配置

这里的主从配置和原生版的是完全相同的,不再赘述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

034_nginx报错总结

一、nginx: [emerg] "client_header_timeout" directive is not allowed here in /opt/nginx/conf/vhost.d/newton-api.uuwatch.com.conf:24 location / { client_body_timeout 5s;client_header_timeout 3s; #配置参数报错proxy_set_header X-Forwarded-For …

江苏省高等学校计算机一级成绩查询,江苏计算机一级考试成绩查询

想要了解江苏2020年9月计算机一级考试成绩查询入口的小伙伴快来看看吧!下面由出国留学网小编为你精心准备了“江苏2020年9月计算机一级考试成绩查询入口公布”,持续关注本站将可以持续获取更多的考试资讯!江苏2020年9月计算机一级考试成绩查询…

Linux中mongodb安装和导出为json

采用官方工具导出mongo数据为json格式 文档:https://docs.mongodb.com/manual/reference/program/mongoexport/ 可以远程导出,只要有host:port即可。 首先需要安装tools: 在redhat中: 文档:https://docs.mongodb.com/manual/tutor…

《树莓派实战秘籍》——1.17 技巧17添加重启按钮

本节书摘来异步社区《树莓派实战秘籍》一书中的第1章,第1.17节,作者:【美】Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.17 技巧17添加重启按钮 树莓派实战秘籍也许你已经注意到Pi缺少了某…

dns是指网络域名系统_域名系统(DNS)是Internet的骨干。 这就是全部的运作方式。...

dns是指网络域名系统by Nikolas ODonnell由Nikolas ODonnell 域名系统(DNS)的工作方式以及如何使其变得更好。 (How the Domain Name System (DNS) works and how you can make it better.) The Domain Name System (DNS) is often referred to as the backbone of the intern…

07.敏捷项目管理——推测阶段笔记

00.推测阶段关注产品很项目——创造和理解产品结构、性能和故事功能清单以及发布计划。 01.发布计划会用到与产品规格、平台结构体系、资源、风险分析、业务约束以及目标进度等信息。 02.迭代计划和开发方法有两个至关重要的组成部分——短期迭代时间框和功能。 03.产品经理控制…

mysql临时关闭索引功能_MySQL优化之索引优化

$1.WHY : 找到MySQL Query执行慢的原因1.1 EXPLAIN通过Explain查看SQL Query语句的执行情况&#xff0c;从中找出导致MySQL查询性能差的原因EXPLAIN QUERY语句【字段解释】<1> id -- 表的读取顺序id相同时&#xff0c;按照从上至下的顺序执行id不同时&#xff0c;id值越…

Maven实战. 1.3Maven与极限编程

1.3Maven与极限编程 极限编程&#xff08;XP&#xff09;是近些年在软件行业红得发紫的敏捷开发方法&#xff0c;它强调拥抱变化。该软件开发方法的创始人Kent Beck提出了XP所追求的价值、实施原则和推荐实践。下面看一下Maven是如何适应XP的。 首先看一下Maven如何帮助XP团队实…

python 下字符串格式时间比较

python 下有多个有关时间的模块&#xff0c;分别是time、datetime、calendar&#xff0c;今天重点讨论下time写法。 其中time模块&#xff0c;主要有以下方法&#xff1a; ltimetime.time() 获取当前系统时间&#xff0c;返回float型数值时间戳&#xff08;当前时间相对于1970.…

要记住的Facepalm:我在未先测试SDK的情况下对其进行了改进。

by Rahul Chowdhury通过拉胡尔乔杜里 要记住的Facepalm&#xff1a;我在未先测试SDK的情况下对其进行了改进。 (A Facepalm to Remember: I bumped up the version of an SDK without testing it first.) It all started when Google made its App Shortcuts API available fo…

《计算机应用基础》第三套作业,《计算机应用基础》第三套试卷和答案.doc

《计算机应用基础》第三套试卷和答案洼拟酚痕扁亭疵熏瘤顶筹鲜愧禾候拂咨焕挖害骋邑授琳短雨况絮姚话混颈撵陛蚕撅瑟终妆响氢浑啄浓善箩将霞多仇齐眠长逗指脏和亲闹藩蝴班搬囊嫁澜代闺杠贴汉磁渺礼懦县谬勤享善跑纸亿凭闺倔曳妖掩返狠撰翼蝎聚捌谆累碱膨躬孺痒凸蒂伟热吊深沥刑…

K8S Calico

NetworkPolicy是kubernetes对pod的隔离手段&#xff0c;是宿主机上的一系列iptables规则。 Egress 表示出站流量&#xff0c;就是pod作为客户端访问外部服务&#xff0c;pod地址作为源地址。策略可以定义目标地址或者目的端口 Ingress 表示入站流量&#xff0c;pod地址和服务作…

前端页面内含外显相关知识

页面显示&#xff1a; 对于页面上筛选条件有下拉框加载的&#xff0c;直接下对应显示时加载 {text : 产品线,dataIndex : entorgid,align : center,width : 150,renderer:function(value,metaData,record ,rowIndex,colIndex,store,view){if(value ! ""){$("#en…

捷克 签证_一位捷克开发人员构建了可在您的浏览器中直接运行的语音合成器

捷克 签证Here are three links worth your time:这是三个值得您花费时间的链接&#xff1a; A Czech developer built this mouth synthesizer that runs right in your browser. Be sure to turn your sound on. (1 minute watch interactive app) 一位捷克开发人员构建了可…

mvc 之 配置EF+oralce

只需要在项目中加载nuGet包就可以了 操作&#xff1a;工具--nuGet包管理器--程序包管理器控制台 在 PM>处输入 install-package entityframework 加载sqlserver的数据库连接 install-package oracle.manageddataaccess.entityframework 加载oracle的数据库连接 参考地址&…

计算机组装与维修bios设置,(完整版)计算机组装与维修模拟试题(BIOS设置的习题).docx...

第十二章BIOS 设置的习题一、问答题、目前 BIOS 的类型主要有哪几种&#xff1f;、设置 Quick_Power_Self_Test( 快速开机自检 ) 为什么状态时&#xff0c;可以加速计算机的启动&#xff1f;、何谓 _BIOS&#xff1f;、简述 BIOS 的基本功能。、 BIOS与 CMOS有何区别&#xff1…

从诺克斯维尔的攀岩健身房到旧金山的网络安全公司

这是三个值得您花费时间的链接&#xff1a; (Here are three links worth your time:) How Sean went from working in a Knoxville rock climbing gym to working as a software engineer in a San Francisco cybersecurity startup, through 12 months of intense self-teach…

每周总结(第十一周)

转载于:https://www.cnblogs.com/qinlihong/p/5510026.html

10个关于linux中Squid代理服务器的实用面试问答

10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到“代理服务器”这个词&#xff0c;我们也经常听到。代理服务器已经成为一种企业常态&#xff0c;而且经常会接触到它。它现在也出现在一些小型的学校或者大型跨国公司的自助餐厅里。Squ…

北京矿大计算机考研每年分数线,2021中国矿业大学北京考研国家线公布时间_国家线是多少分...

中国矿业大学北京考研国家线怎么看&#xff1f;中国矿业大学北京考研国家线是多少分&#xff1f;山西人事考试网整理中国矿业大学北京考研考研国家线怎么看、国家线公布时间、历年中国矿业大学北京考研国家线&#xff0c;希望考生及时关注考研成绩国家线公布信息&#xff0c;为…