本文目录一览:
- 1、一台linux服务器怎么安装多个mysql数据库并配置主从
- 2、Linux下指定mysql数据库数据配置主主同步的实例
- 3、如何设置mysql主从同步时间间隔 linux
- 4、如何设置linux系统服务器的slave master
- 5、如何在linux下安装mysql数据库并配置
一台linux服务器怎么安装多个mysql数据库并配置主从
1、关闭Liunx系统的防火墙,如果忘了,你下面的测试连接必定会失败,切记,切记,切记。
2、yum安装lrzsz和cmake
yum -y install lrzsz;
yum -y install cmake;
首先熟悉MySql数据库,很多人都是直接安装原生版的MySql数据库(就是官网上下载的数据库安装包),也有人用的是MySql的衍生版数据库,如percona,我用的就是这种,下面我会分别说明原生版和衍生版MySql数据库的安装和主从配置。
Linux下指定mysql数据库数据配置主主同步的实例
一、
概念:
①
数据库同步
(主从同步
---
主数据库写的同时
往从服务器写数据)
②
数据库同步
(主主同步
---
两台数据库服务器互相写数据)
二、
举例
主主数据库同步服务器配置
数据库服务器(A)
主数据库
IP:192.168.1.134
数据库服务器(B)
主数据库
IP:192.168.1.138
两台服务器同步的用户名为:
bravedu
密码:
brave123
一、主数据库操作设置(A):
①
创建同步用户名
允许连接的
用户IP地址
(非本机IP)
复制代码
代码如下:
grant
replication
slave
on
*.*
to
'bravedu'@'192.168.1.%'
identified
by
'brave123';
flush
privileges;
②
更改mysql配置文件
复制代码
代码如下:
[mysqld]
server-id
=
1
log-bin=/www/mysql/binlog/binlog
(路径要根据自己的安装设置)
binlog-do-db
=
dbname
(要同步的数据库名)
binlog-ignore-db=mysql
#相对应主从数据库同步不同的地方
复制代码
代码如下:
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
replicate-do-db
=
dbname
replicate-ignore-db
=
mysql,information_schema
重启mysql服务器
③
查看主数据库同步状态
IP:
***.134
复制代码
代码如下:
mysqlflush
tables
with
read
lock;
mysqlshow
master
status\G
***************************
1.
row
***************************
File:
mysql-bin.000001
(这里注意
设置从服务器的时候要用)
Position:
106
(这里注意设置从服务器的时候要用)
Binlog_Do_DB:
dbname
Binlog_Ignore_DB:
mysql
1
row
in
set
(0.00
sec)
mysqlunlock
tables;
*****主服务器到目前位置设置完毕*******
二、从数据库操作设置(B):
①
创建同步用户名
复制代码
代码如下:
grant
replication
slave
on
*.*
to
'bravedu'@'192.168.1.%'
identified
by
'brave123';
flush
privileges;
②
更改mysql配置文件
复制代码
代码如下:
[mysqld]
server-id
=
2
log-bin=/www/mysql/binlog/binlog
(路径要根据自己的安装设置)
binlog-do-db
=
dbname
(要同步的数据库名)
binlog-ignore-db=
mysql,information_schema
#相对于主从同步不同的地方
binlog-do-db
=
dbname
binlog-ignore-db=mysql
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
重启mysql服务器
查看主数据库同步状态
IP:
***.138
复制代码
代码如下:
mysqlflush
tables
with
read
lock;
mysqlshow
master
status\G
***************************
1.
row
***************************
File:
mysql-bin.000005
(这里注意
设置从服务器的时候要用)
Position:
106
(这里注意设置从服务器的时候要用)
Binlog_Do_DB:
dbname
Binlog_Ignore_DB:
mysql
1
row
in
set
(0.00
sec)
mysqlunlock
tables;
③
指定主主数据库服务器同步指令
注:IP为主服务器的IP,用户名,密码,log_file,log_post
服务器互相统一
可能这块操作
需要先
解除锁表、停止数据库状态、在运行后
在启动状态
复制代码
代码如下:
mysql
stop
slave;
#设置192.168.1.138数据库服务器配置
那么host
配置文件信息
就是
134的信息
mysql
change
master
to
master_host='192.168.1.134',
master_user='bravedu',
master_password='brave123',
master_log_file='mysql-bin.000005',
master_log_pos=106;
#设置192.168.1.134
数据库服务器配置
那么host
等配置文件信息
就是
134的信息
mysql
change
master
to
master_host='192.168.1.138',
master_user='bravedu',
master_password='brave123',
master_log_file='mysql-bin.000001',
master_log_pos=106;
mysql
start
slave;
mysql
unlock
tables;
④
查看主数据库同步状态
会出来很多信息
但是主要看这两个状态就行了
如果都是
yes
就可以了
复制代码
代码如下:
mysqlshow
slave
status\G;
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
至此,主主数据库同步成功配置完成。
如何设置mysql主从同步时间间隔 linux
linux下配置mysql主从同步的步骤
一、主机环境
主机:
master操作系统:rhel6.0
IP:172.16.0.100
MySQL版本:5.1.47
从机:
slave操作系统:rhel6.0
IP:172.16.0.200
MySQL版本:5.1.47
二、创建数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl;
三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库
在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'replication'@'172.16.0.200' identified by '123456';
重启master机的mysql服务:service mysqld restart
用show master status 命令看日志情况
mysqlshow master status;
+-----------------+------------+-------------------+-----------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+------------+-------------------+-----------------------+
| log.000003 | 98 | repl | mysql |
+-----------------+------------+-------------------+-----------------------+
1 row in set (0.00 sec)
2、修改slave机中mysql配置文件
同样在[mysqld]字段下添加如下内容
server-id=2
master-host=172.16.0.100
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
然后重启slave机的mysql
在slave机中进入mysql
mysqlstart slave;
mysqlshow slave status\G;
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。
这时 再执行show slave status\G
显示如下:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.222
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: log.000003
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 229
Relay_Master_Log_File: log.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 229
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
Slave_IO_Running: Yes Slave_SQL_Running: Yes
信息中如上两行都为Yes,说明配置成功。
五、测试主从服务器是否能同步
在主服务器上面新建一个表,必须在repl数据下
mysql use repl
Database changed
mysql create table test(id int,name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql insert into test values(1,'zaq');
Query OK, 1 row affected (0.00 sec)
mysql insert into test values(1,'xsw');
Query OK, 1 row affected (0.00 sec)
mysql select * from test;
+------+------+
| id | name |
+-------+------+
| 1 | zaq |
| 1 | xsw |
+-------+------+
2 rows in set (0.00 sec)
在从服务器查看是否同步过来
mysql use repl;
Database changed
mysql select * from test;
+------+------+
| id | name |
+------+------+
| 1 | zaq |
| 1 | xsw |
+------+------+
2 rows in set (0.00 sec)
说明已经配置成功。
四、出现的问题
1. 当在执行start slave这条命令时,系统提示
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO,
执行show slave status;又提示Empty set (0.00 sec)
原因:slave已经默认开启,要先关闭再开启
执行 slave stop;
再执行
change master to master_host='172.16.0.200',master_user='repl',master_password='123456', master_log_file='log.000003' ,master_log_pos=98;
2、出现错误提示 :Slave_IO_Running:NO
mysql的error日志中信息:
Slave I/O: error connecting to master 'replication@172.16.0.100:3306' - retry-time: 60 retries: 86400, Error_code: 1045
解决方法
1.在主mysql中创建slave远程连接访问时候的登录密码一定要设置对。
2.停止slave上的mysqld服务,从服务器上删除掉所有的二进制日志文件,包括一个数据目录下的master.info文件和hostname-relay-bin开头的文件,然后启动slave上的mysqld服务。
master.info::记录了Mysql主服务器上的日志文件和记录位置、连接的密码。
3.slave上Slave_SQL_Running: No ,提示某个表定义不正确
解决方法:
清空drop掉master和slave上的已经存在所有表,然后从master库上导入新的数据即可。
如何设置linux系统服务器的slave master
linux下配置mysql主从同步的步骤
一、主机环境
主机:
master操作系统:rhel6.0
IP:172.16.0.100
MySQL版本:5.1.47
从机:
slave操作系统:rhel6.0
IP:172.16.0.200
MySQL版本:5.1.47
二、创建数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl;
三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库
在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'replication'@'172.16.0.200' identified by '123456';
重启master机的mysql服务:service mysqld restart
用show master status 命令看日志情况
如何在linux下安装mysql数据库并配置
在linux下安装mysql数据库并配置的流程比较繁琐,需要耐心调试,具体方法和步骤如下:
1.查找以前是否安装有mysql,使用下面命令:
rpm -qa|grep -i mysql
如果显示有如下包则说明已安装mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2.如果已安装,则需要删除已安装的数据库,使用以下命令来删除数据库
删除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
删除老版本mysql的开发头文件和库
命令:rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
3.下载mysql的rpm包
可以通过wget下载具体的地址因为不能用链接请大家去官网去找
(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服务器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客户端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql开发依赖包。
下载后放到Liunx服务器中。
4.安装MySQL Server的rpm包
rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm
安装完成后会生成root用户的随机密码,请使用“cat /root/.mysql_secret”或类似命令进行查看。
5.安装MySQL客户端
rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
6.安装MySQL开发依赖包
rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm
7.启动msyql
安装完成后mysql是没有启动的,运行mysql命令会提示如下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
可使用如下命令启动MySQL:
service mysql start
或者使用如下命令:
/etc/init.d/mysql start
可使用SET PASSWORD命令修改root用户的密码,参考如下:SET PASSWORD = PASSWORD('root123456');
8.登录MySQL
使用mysql命令登录MySQL服务器,运行MySQL的命令时,会提示需要设置root用户密码。
9.设置开机自启动
/etc/init.d/mysql start
设置完成后重启系统,使用natstat –nat命令可看到MySQL的3306端口。
10.至此已经安装好了mysql数据库,当然现在我们的数据库还不支持远程连接,远程连接会出现以下代码:1130,ERROR 1130: Host 192.168.0.10 is not allowed to connect to this MySQL server,可以通过以下以下来解决。
11.改表法:在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为'%'。
mysql
mysqluse mysql;
mysqlselect 'host' from user where user='root
12.到此为止,mysql数据库在linux中安装完毕。