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

简介:

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

前提:

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

2、下载linux系统自带的mysql

查找已安装的myslq 版本:

1
#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


下载的是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,连接的时候会报这样测错误:

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

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

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

-- 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),这个时候再远程连接数据库就可以连接的上了(如图)。

好了,到此为止第一个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查看主库的状态如下(不同数据库值不同,记住这两个值):

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

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;

启动从数据库的同步:

START SLAVE;

查看从数据库的状态:

SHOW SLAVE STATUS;

注意看其中的两个值:

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

现在就测试修改数据吧!

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


启动从库常见问题:

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids

报错信息:

代码如下:

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用户以及后面的操作。

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

http://niutuku.com/tech/Mysql/237830.shtml 

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

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

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

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、主从配置

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



本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1736734

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
1049 93
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
718 1
|
关系型数据库 MySQL 数据库
MyEMS开源系统安装之数据库
本文详细讲解MyEMS的安装步骤,重点介绍数据库架构与脚本部署。MyEMS支持MySQL 8.0、MariaDB 10.5及SingleStore 7.0等数据库服务器。通过命令行或客户端工具执行SQL脚本完成安装,包括多个数据库(如myems_billing_db、myems_energy_db等)。此外,提供解决常见问题的方法,如“用户拒绝访问”、“COLLATE设置”和“MAX_ALLOWED_PACKET错误”。注意,不建议在生产环境中将数据库安装于Docker容器内。
461 1
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
1372 7
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
2063 5
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
1054 61
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
1578 21
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
1044 3
Jasypt加密数据库配置信息
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
971 17
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3592 26

推荐镜像

更多