当前位置:首页 » 数据仓库 » mariadb数据库同步
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mariadb数据库同步

发布时间: 2022-09-20 15:59:18

① 怎样将数据库Mysql 迁移到 MariaDB 上

如果是相同的基础版本(如 5.5),可以直接卸载 MySQL 然后安装 MariaDB,这样就可以用了。甚至不需要备份然后还原数据库。当然,保险起见,升级前将所有的数据库都备份一下还是非常有必要的,以防万一。如果 MariaDB 的主版本高,在经过上面的卸载 MySQL 再安装 MariaDB 操作之后,需要使用 mysql_upgrade 升级一下。是的,甚至连命令行都与使用MySQL 的时候一样。
A. 先配置 MariaDB的安装源。
目前 MariaDB 的主版本是 10.1,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:
[mariadb]
name = MariaDB
enable=1
priority=3
baseurl = http://yum.mariadb.org/10.1/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
其中 priority=3 是针对 YUM 的 PRIORITIES 优先级插件的。
B. 卸载原来的 MYSQL 及相关包。
# yum remove mysql*
上面用 * 来匹配删除所有 mysql 数据包(包括因包依赖而删除的别的包,如 postfix)。因为直接安装的时候会出现冲突,例如:
file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-server-***** conflicts with file from package mysql-libs-5.5.32-****
嗯,好像因为将 php-mysql 也给删除了(实际上这个不该删除的),所以 phpMyAdmin 也因为依赖关系而被删除了,我没仔细看。
所以最好不要用通配符 *,而是选择性删除几个主要的,
# yum remove mysql mysql-server mysql-libs
但是这个我没有再测试,因为后面有更好的方法。
C. 然后安装 MariaDB及相应 PHP 扩展。
也是指定几个主要的安装包,剩下的让 yum 自己进行依赖关系检查。
# yum install MariaDB-server MariaDB-client php-mysql
或者不安装 MariaDB-server 而改为具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:
# yum install MariaDB-Galera-server MariaDB-client galera
这里比较搞笑的是,没注意前面把 php-mysql 给卸载了,结果运行数据库之后访问 WordPress,结果遭遇下面的错误:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
D. 完成,修补MariaDB
不管版本是否升级了,执行一下数据库升级指令总没有坏处:
# mysql_upgrade -p
看看数据库版本是不是升级了:
# mysql -u root -p -e ‘show global variables like “version”;’
Enter password:
+—————+—————-+
| Variable_name | Value |
+—————+—————-+
| version | 5.5.31-MariaDB |
+—————+—————-+
将 MariaDB 加入随系统自启动列表,
# chkconfig –levels 345 mysql on
嗯,以前 MySQL 的时候是 mysqld,现在是 mysql,就差了一个字母 d。
启动MariaDB
# service mysql start

② mysql主从同步,一个是mysql的5.5.56-MariaDB, 另外一个是 mysql的5.6.14 ,能数据

首先, 我要着重详述下为什么我们没有把MySQL 5.6 直接拿过来作为二次开发的基础,去做一个产品,可以称为 MariaDB 5.6. 这个原因的细节我们直接都没有和众人分享。
1. MySQL5.6 的代码库的文件结构已经被改动了。比如单个代码文件已经被分成多个,又或者是某些代码已经被重新归类到了不同的文件内。所以要把MariaDB 去配合现在这个文件结构一定是一个非常消耗时间的过程。而其实我确实不是很明白MySQL为什么要改动现有的文件结构。
2. MairaDB 5.5 已经有大量的代码不同于MySQL 5.5 的版本,而且也有很多的新的特征被整合到MariaDB 5.5 中,而这些特征直到 5.6 版本才出现在MySQL中。所以我们在比较同样功能的MySQL 和MariaDB的版本,同时在完成设计和QA方面的审核后,一个很明显的结论是MariaDB会是一个更好的产品。在大多数情况下,在选择MariaDB的时候,人们会更多的考虑到功能方面的偏好。
3. 所以MySQL的新代码,至少是修改bug的代码以后都没有必要进行相应的测试了。我们试想一下,当有这样一个功能要加入到一段代码中,而这个功能原本就是来源于这段代码的情况下,测试将是一个异常重要的过程来保证这个功能的正常运行。

sjZ52
翻译于 2年前
0人顶
顶 翻译的不错哦!

和上文中提到的第二点和第三点一样,Stewart Smith在Percona写到关于Mysql最后安全补丁的回归测试和QA如何测试使用MariaDB工程,以及保存在Percona服务器用作回归测试的测试用例的重要性。参考:wrote yesterday about the latest security fix in MySQL introcing a regression
MariaDB不仅仅是Mysql的一个替代品。它的主要目的是创新和提高Mysql的技术,Mysql5.6不是一个合适的创新基础平台,所以我们就做了下面的事情:
1.由于我们引入了一些新功能(像 multi-source replication多源复制, Cassandra integration, engine independent statistics独立统计系统等),所以我们需要搞个新版本。通常当你引入新功能时,你需要新建个版本。
2.下个版本称作“MariaDB5.6”是不准确的,因为他不是基于Mysql5.6,取而代之,我们决定版本号调为10.0
3.MariaDB引入Mysql5.6作为一种替代方案的话,需要提升很多功能,我们已经迈出了第一步,正朝着合并或者重建Mysql5.6的功能方向发展。

③ Navicat怎么连接MariaDB数据库

第一步,打开桌面上的Navicat快捷方式

第二步,进入Navicat主界面

第三步,点击左上角的文件

第四步,下拉列表中选中新建连接

第五步,选择MariaDB

第六步,弹出新建连接对话框

第七步,根据实际情况填写相应信息,点击确定

第八步,成功生成连接MariaDB数据库

④ mariadb5.5.44主从数据不同步,调取relaylog执行sql语句,求解!

把你160机器上配置文件中的"replicate_wild_do_table=qqq.%, mysql.%"这一行注释掉或删掉。
如果你是想复制qqq数据库和mysql数据库,配置文件应该是:
replicat_do_db = qqq
replicat_do_db = mysql

⑤ MariaDB与MySQL两个数据库怎么样同时安装使用

一, CentOS7环境下
1. 安装Mysql5.6.19,安装成功后,端口号:3306
[root@centOS7]# mysql -uroot -h127.0.0.1 -P3306 -p
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.19 |
+-----------+
1 row in set (0.00 sec)
2.安装MariaDB10.0.12.,安装成功后,口端口号:3307
[root@centOS7]# mysql -uroot -h127.0.0.1 -P3307 -p
mysql> select version();
+---------------------+
| version() |
+---------------------+
| 10.0.12-MariaDB-log |
+---------------------+
1 row in set (0.00 sec)
下面是,在Mysql安装好后,安装MariaDB10.0.12的详细方法
下载最新版本的二进制编译包tar.gz (目前为mariadb-10.0.12-linux-x86_64),并将它解压到你的自定义目录中. 本文档假定安装目录为/opt.
创建数据所在目录及符号链接,如下所示:
[root@centOS7 opt]# mkdir mariadb-data
[root@centOS7 opt]# ln -s mariadb-10.0.12-linux-x86_64 mariadb
[root@centOS7 opt]# ls -al
total 20
drwxr-xr-x. 5 root root 4096 2014-09-26 07:27 .
dr-xr-xr-x. 23 root root 4096 2014-09-26 06:38 ..
lrwxrwxrwx. 1 root root 27 2014-09-26 07:27 mariadb -> mariadb-10.0.12-linux-x86_64
drwxr-xr-x. 13 root root 4096 2014-09-26 07:07 mariadb-10.0.12-linux-x86_64
drwxr-xr-x. 2 root root 4096 2014-09-26 07:26 mariadb-data
创建组mariadb及用户mariadb, 设置文件对应的所属权限:
[root@centOS7 opt]# groupadd --system mariadb
[root@centOS7 opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g mariadb --system mariadb
[root@centOS7 opt]# chown -R mariadb:mariadb mariadb-10.0.12-linux-x86_64/
[root@centOS7 opt]# chown -R mariadb:mariadb mariadb-data/
通过从support-files中拷贝my.cnf, 在/opt/mariadb目录下创建新的my.cnf:
[root@centOS7 opt]# cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf
[root@centOS7 opt]# chown mariadb:mariadb mariadb-data/my.cnf
编辑文件/opt/mariadb-data/my.cnf, 增加自定义值, socket, port, user及最重要的设置: data目录和base目录. 最后的设置至少是这样的:
[client]
port = 3307
socket = /opt/mariadb-data/mariadb.sock

[mysqld]
datadir = /opt/mariadb-data
basedir = /opt/mariadb
port = 3307
socket = /opt/mariadb-data/mariadb.sock
user = mariadb
从support-files文件中拷贝init.d脚本到对应的位置:
[root@centOS7 opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb
[root@centOS7 opt]# chmod +x /etc/init.d/mariadb
编辑/etc/init.d/mariadb,使用 mariadb替换 mysql设置项, 如下所示:
- # Provides: mysql
+ # Provides: mariadb
- basedir=
+ basedir=/opt/mariadb
- datadir=
+ datadir=/opt/mariadb-data
- lock_file_path="$lockdir/mysql"
+ lock_file_path="$lockdir/mariadb"
你需要告诉mariadb读取唯一的cnf文件. 在$bindir/mysqld_safe之后加上--defaults-file=/opt/mariadb-data/my.cnf. 最后参数设置应该是这样的:
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
显式指定 my.cnf作为传入参数,来运行 mysql_install_db:
[root@centOS7 opt]# cd mariadb
[root@centOS7 mariadb]# scripts/mysql_install_db --defaults-file=/opt/mariadb-data/my.cnf
现在你可以这样启动MariaDB:
[root@centOS7 opt]# /etc/init.d/mariadb start
Starting MySQL SUCCESS
把MariaDB启动设置为系统级别启动:
[root@centOS7 opt]# cd /etc/init.d
[root@centOS7 init.d]# chkconfig --add mariadb
[root@centOS7 init.d]# chkconfig --levels 3 mariadb on
最后,测试现在有两个数据库服务实例在运行:
[root@centOS7 ~]# mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 5.6.19 |
+-----------+
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock
+--------------------+
| VERSION() |
+--------------------+
|10.0.12-MariaDB-log |
+--------------------+

⑥ 如何从MySQL迁移到MariaDB

本来 MariaDB 的描绘初衷之一即是彻底兼容 MySQL,包含 API 和客户端协议,使之能轻松变成 MySQL 的代替品,所以由 MySQL 搬迁到MariaDB 基本上能够称之为“晋级”,就如同软件晋级版别一样。MariaDB 的技能文档上是这样写的:
若是是一样的根底版别(如5.5),能够直接卸载 MySQL 然后装置MariaDB,这样就能够用了。乃至不需求备份然后复原数据库。当然,稳妥起见,晋级前将一切的数据库都备份一下仍是十分有必要的,以防万一。
若是MariaDB 的主版别高,在通过上面的卸载 MySQL 再装置 MariaDB 操作之后,需求运用 mysql_upgrade晋级一下。是的,乃至连命令行都与运用 MySQL 的时分一样。
一切原先的客户端和连接器(PHP、Perl、Python、Java等)都不需求做任何改动就能正常作业,由于 MariaDB 与 MySQL 运用的是一样的客户端协议,而且客户端库文件也是二进制兼容的。上面用 *来匹配删去一切 mysql 数据包(包含因包依靠而删去的别的包,如 postfix)。由于直接装置的时分会呈现抵触,例如:
file
/usr/share/mysql/ukrainian/errmsg.sys from install of
MariaDB-server-5.5.31-1.i686 conflicts with file from package
mysql-libs-5.5.32-1.el6.remi.i686
嗯,如同由于将 php-mysql 也给删去了(实际上这个不应删去的),所以phpMyAdmin 也由于依靠联系而被删去了,我没仔细看。所以最佳不要用通配符 *,而是选择性删去几个首要的,
# yum remove
mysql mysql-server mysql-libs
可是这个我没有再测验,由于后边有非常好的办法。
C. 然后装置 MARIADB 及相应
PHP 拓展。
也是指定几个首要的装置包,剩余的让 yum 自个进行依靠联系查看。
# yum install
MariaDB-server MariaDB-client php-mysql
或许不装置 MariaDB-server
而改为具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:

# yum install MariaDB-Galera-server MariaDB-client galera
这里对比搞笑的是,没注意前面把
php-mysql 给卸载了,成果运转数据库之后拜访 WordPress,成果遭受下面的过错:
Your PHP installation appears
to be missing the MySQL extension which is required by WordPress.
D.
完结,修补
不论版别是不是晋级了,履行一下数据库晋级指令总没有害处:
# mysql_upgrade -p

看看数据库版别是不是晋级了:
# mysql -u root -p -e 'show global variables like
"version";'
Enter password:
+---------------+----------------+

| Variable_name | Value |
+---------------+----------------+

| version | 5.5.31-MariaDB |
+---------------+----------------+

将 MariaDB 参加随体系自发动列表,
# chkconfig --levels 345 mysql on
嗯,曾经
MySQL 的时分是 mysqld,现在是 mysql,就差了一个字母 d。
发动它,
# service mysql start

这个时分服务器上的网站大概现已能够正常作业了,拜访数据库没有疑问。
若是有必要,装置完 MariaDB 之后能够重新装置 postfix。若是发现
phpMyAdmin 提示无拜访权限了,那即是被卸载了,需求重新装置和装备 phpMyAdmin。
别的,由于之前进行了卸载操作,所以本来的 MySQL
和 phpMyAdmin 的装备文件都被清除了,也需求重新装备。特别是 MySQL 的装备文件 /etc/my.cnf,由于 MariaDB
尽管创建了一个my.cnf.d 文件夹来存储自个的装备文件,可是它会首要加载 my.cnf,且本来 MySQL 的装备的 [mysqld]
那一节的内容仍是有用的。
3. 较好的晋级办法
仍是在上面介绍的体系装备下,先增加 MariaDB 装置源,然后直接履行体系晋级,
# yum
update --skip-broken
MariaDB 有关装置包会被装置,不需求的 MySQL
包将被卸载,而且晋级之后不需求对体系进行修补了。看看输出的前面一部分:

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

Package Arch Version Repository Size

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

Installing:
MariaDB-Galera-server i686 5.5.29-1 mariadb 19 M

replacing mysql.i686 5.5.21-1.el6.remi
replacing
mysql-server.i686 5.5.21-1.el6.remi
MariaDB-server i686 5.5.31-1 mariadb
32 M
replacing mysql-server.i686 5.5.21-1.el6.remi

MariaDB-shared i686 5.5.31-1 mariadb 1.0 M
replacing
mysql-libs.i686 5.5.21-1.el6.remi
kernel i686 2.6.32-358.11.1.el6
updates 24 M
libjpeg-turbo i686 1.2.1-1.el6 base 176 k
replacing
libjpeg.i686 6b-46.el6
Updating:

⑦ 如何把mariadb迁移到mysql

背景客户环境数据库目前使用的是 MariaDB 10.1.9,计划迁移到 MySQL 5.7.25,需要测试迁移是否能成功,以及迁移到 MySQL 后数据库的性能对比。
一、准备环境

  1. 安装 MariaDB 10.1.9

2. 安装 mysql 5.7.25

二、迁移测试

  1. 对 MariaDB 全备

2. 导入全备到 MySQL 5.7.25

  • 可以看到在导入全备时有个报错,从字面看,是 mysql.proc 这张表损坏了。

  • 接下来我们分析下,这个报错到底是什么

四、性能测试结果

从 sysbench 压测的结果来看,在相同配置的服务器以及保持重要参数一致的情况下(比如双一打开),MariaDB 10.1.9 与 MySQL 5.7.25 读写性能相差不大。

五、总结

经测试,MariaDB 10.1.9 可以正常迁移到 MySQL 5.7.25,并能保证迁移后性能不下降或者略有上升。

⑧ MariaDB与MySQL两个数据库怎么样同时安装使用

端口号登陆方法:

一, CentOS7环境下

1. 安装Mysql5.6.19,安装成功后,端口号:3306

[root@centOS7]# mysql -uroot -h127.0.0.1 -P3306 -p

mysql> select version();

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

| version() |

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

| 5.6.19 |

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

1 row in set (0.00 sec)

2.安装MariaDB10.0.12.,安装成功后,口端口号:3307

[root@centOS7]# mysql -uroot -h127.0.0.1 -P3307 -p

mysql> select version();

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

| version() |

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

| 10.0.12-MariaDB-log |

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

1 row in set (0.00 sec)

下面是,在Mysql安装好后,安装MariaDB10.0.12的详细方法

下载最新版本的二进制编译包tar.gz
(目前为mariadb-10.0.12-linux-x86_64),并将它解压到你的自定义目录中.
本文档假定安装目录为/opt.

创建数据所在目录及符号链接,如下所示:

[root@centOS7 opt]# mkdir mariadb-data
[root@centOS7 opt]# ln -s mariadb-10.0.12-linux-x86_64
mariadb
[root@centOS7 opt]# ls -al
total 20
drwxr-xr-x. 5 root root 4096 2014-09-26 07:27 .
dr-xr-xr-x. 23 root root 4096 2014-09-26 06:38 ..
lrwxrwxrwx. 1 root root 27 2014-09-26 07:27 mariadb
-> mariadb-10.0.12-linux-x86_64
drwxr-xr-x. 13 root root 4096 2014-09-26 07:07
mariadb-10.0.12-linux-x86_64
drwxr-xr-x. 2 root root 4096 2014-09-26 07:26
mariadb-data

创建组mariadb及用户mariadb, 设置文件对应的所属权限:

[root@centOS7 opt]# groupadd --system mariadb
[root@centOS7 opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g
mariadb --system mariadb
[root@centOS7 opt]# chown -R mariadb:mariadb
mariadb-10.0.12-linux-x86_64/
[root@centOS7 opt]# chown -R mariadb:mariadb
mariadb-data/

通过从support-files中拷贝my.cnf, 在/opt/mariadb目录下创建新的my.cnf:

[root@centOS7 opt]# cp mariadb/support-files/my-medium.cnf
mariadb-data/my.cnf
[root@centOS7 opt]# chown mariadb:mariadb
mariadb-data/my.cnf

编辑文件/opt/mariadb-data/my.cnf, 增加自定义值, socket, port, user及最重要的设置:
data目录和base目录. 最后的设置至少是这样的:

[client]
port = 3307
socket =
/opt/mariadb-data/mariadb.sock

[mysqld]
datadir = /opt/mariadb-data
basedir = /opt/mariadb
port = 3307
socket =
/opt/mariadb-data/mariadb.sock
user = mariadb

从support-files文件中拷贝init.d脚本到对应的位置:

[root@centOS7 opt]# cp mariadb/support-files/mysql.server
/etc/init.d/mariadb
[root@centOS7 opt]# chmod +x /etc/init.d/mariadb

编辑/etc/init.d/mariadb,使用 mariadb替换 mysql设置项, 如下所示:

- # Provides: mysql
+ # Provides: mariadb
- basedir=
+ basedir=/opt/mariadb
- datadir=
+ datadir=/opt/mariadb-data
- lock_file_path="$lockdir/mysql"
+ lock_file_path="$lockdir/mariadb"

你需要告诉mariadb读取唯一的cnf文件.
在$bindir/mysqld_safe之后加上--defaults-file=/opt/mariadb-data/my.cnf.
最后参数设置应该是这样的:

# Give extra arguments to mysqld with the my.cnf file. This
script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf
--datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args
>/dev/null 2>&1 &

显式指定 my.cnf作为传入参数,来运行 mysql_install_db:

[root@centOS7 opt]# cd mariadb
[root@centOS7 mariadb]# scripts/mysql_install_db
--defaults-file=/opt/mariadb-data/my.cnf

现在你可以这样启动MariaDB:

[root@centOS7 opt]# /etc/init.d/mariadb start
Starting MySQL SUCCESS

把MariaDB启动设置为系统级别启动:

[root@centOS7 opt]# cd /etc/init.d
[root@centOS7 init.d]# chkconfig --add mariadb
[root@centOS7 init.d]# chkconfig --levels 3 mariadb on

最后,测试现在有两个数据库服务实例在运行:

[root@centOS7 ~]# mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 5.6.19 |
+-----------+
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();"
--socket=/opt/mariadb-data/mariadb.sock
+--------------------+
| VERSION() |
+--------------------+
|10.0.12-MariaDB-log |
+--------------------+

⑨ mariadb主从 可以同步单个数据库吗

数据库的优化设计对以后web项目能否承担高并发所带来的巨大负担是个非常好的解决方案。主从同步和读写分离就是个常用的方法,主数据库用来写入数据,从数据库用来查询
分担了主数据库的一大部分工作,这样做的好处是当主服务器崩了之后,还是在从服务器上获取到数据,起到的备份的作用。