如何从MySQL迁移到MariaDB

发布网友 发布时间:2022-04-20 16:38

我来回答

4个回答

懂视网 时间:2022-04-07 20:47

 

安装的mariadb-5.5.43-linux-x86_.tar.gz这个软件包;

 

可以把mariadb安装到逻辑卷中:

 

创建一个20G的LVM磁盘

# fdisk /dev/sda

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Partition number (1-4): 4

First cylinder (7859-15665, default 7859): 

Using default value 7859

Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): 

Using default value 15665

 

Command (m for help): n

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l

First cylinder (7859-15665, default 7859): 

Using default value 7859

Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +20G

 

Command (m for help): t

Partition number (1-5): 5

Hex code (type L to list codes): 8e

Changed system type of partition 5 to 8e (Linux LVM)

 

[root@localhost ~]# partx -a /dev/sda

BLKPG: Device or resource busy

error adding partition 1

BLKPG: Device or resource busy

error adding partition 2

[root@localhost ~]# partx -a /dev/sda

BLKPG: Device or resource busy

error adding partition 1

BLKPG: Device or resource busy

error adding partition 2

BLKPG: Device or resource busy

error adding partition 4

BLKPG: Device or resource busy

error adding partition 5

 

创建一个10G大小的逻辑卷:

# pvcreate /dev/sda5

  Physical volume "/dev/sda5" successfully created

 

# vgcreate myvg /dev/sda5

  Volume group "myvg" successfully created

 

# lvcreate -L 10G -n mydata myvg

  Logical volume "mydata" created

 

# lvs

  LV     VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  mydata myvg -wi-a----- 10.00g                                                    

  root   vg0  -wi-ao---- 20.00g                                                    

  swap   vg0  -wi-ao----  2.00g                                                    

  usr    vg0  -wi-ao---- 10.00g                                                    

  var    vg0  -wi-ao---- 20.00g 

 

格式化逻辑卷:(并创建卷标)

# mke2fs -t ext4 -L MYDATA /dev/myvg/mydata 

 

开机自动挂载:

# vim /etc/fstab

LABEL=MYDATA/databaseext4defaults0 0

 

# mkdir /database/mydata/ -pv

 

# mount -a

#mount

/dev/mapper/myvg-mydata on /database type ext4 (rw)

 

开始安装 mariadb 数据库:

# tar  xf  mariadb-5.5.40-linux-x86_.tar.gz  -C  /usr/local/

 

# cd /usr/local

# ln  -sv  mariadb-5.5.40-linux-x86_  mysql

# cd  mysql

 

# groupadd -r -g 306 mysql

# useradd -r -g 306 -u 306 mysql

 

# chown -R root.mysql ./*

# chown -R mysql.mysql /database/mydata/

 

# cd mysql/

# mkdir /etc/mysql

# cp support-files/my-large.cnf /etc/mysql/my.cnf

 

初始化数据库:

# scripts/mysql_install_db --user=mysql --datadir=/database/mydata/

 

初始化后:/database/mydata会生成很多数据库文件:

# ls /database/mydata/

aria_log.00000001  ib_logfile0             mysql          mysql-bin.000003    test

aria_log_control   ib_logfile1      mysql-bin.000001  mysql-bin.index

ibdata1            localhost.localdomain.pid  mysql-bin.000002  performance_schema

 

#vim /etc/mysql/my.cnf


在[mysqld]下面随便找个位置添加下面的内容:

datadir = /database/mydata

innodb_file_per_table = on

 

这是安装包提供的服务脚本support-file/mysql.server


添加mysqld服务脚本,到系统默认的启动位置;

# cp support-file/mysql.server /etc/rc.d/init.d/mysqld

 

添加执行权限,添加到开机自动挂着:

# chmod +x /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# chkconfig --list mysqld

 

现在就可以使用 mysqld 启动mysql 服务了;

# service mysqld start

# ss -tnl

 

把/etc/profile.d/mysql.sh这个路径加入环境变量:

# vim /etc/profile.d/mysql.sh

添加:exprot PATH=/usr/local/mysql/bin:$PATH

 

# . /etc/profile.d/mysql.sh

 

现在就可以使用mysql启动数据库了;

 

#  mysql

Welcome to the MariaDB monitor.  Commands end with ; or g.

Your MariaDB connection id is 2

Server version: 5.5.43-MariaDB-log MariaDB Server

 

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.

 

MariaDB [(none)]> select version();    显示当前内置的版本;

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

| version()          |

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

| 5.5.43-MariaDB-log |

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

1 row in set (0.00 sec)

本文出自 “blue” 博客,请务必保留此出处http://sailove.blog.51cto.com/3215562/11443

通用二进制格式安装MariaDB

标签:通用二进制格式安装mariadb

热心网友 时间:2022-04-07 17:55

本来 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:

热心网友 时间:2022-04-07 19:13

  本来 MariaDB 的描绘初衷之一即是彻底兼容 MySQL,包含 API 和客户端协议,使之能轻松变成 MySQL 的代替品,所以由 MySQL 搬迁到MariaDB 基本上能够称之为“晋级”,就如同软件晋级版别一样。MariaDB 的技能文档上是这样写的:
  若是是一样的根底版别,能够直接卸载 MySQL 然后装置MariaDB,这样就能够用了。
  乃至不需求备份然后复原数据库。当然,稳妥起见,晋级前将一切的数据库都备份一下仍是十分有必要的,以防万一。

热心网友 时间:2022-04-07 20:48

迁移步骤:
1、停止正在运行的Mysql服务
# systemctl stop mysqld

2、安装mariadb及升级工具等
# pacman -S mariadb libmariadbclient mariadb-clients

3、重启Mysql服务
# systemctl start mysqld

4、对已存在的库进行升级
# mysql_upgrade -p

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com