MariaDB中文手册

MariaDB

这是MariaDB主要的知识库

按照下面的链接找到您感兴趣的的信息。如果您在文档上没有找到您想要的任何特别的信息,您可以在这里提问,我们将尽力提供最佳答案!

MariaDB简介

MariaDB是一个增强的MySQL替代品,并且在GPL v2许可证可用
它主要是由MariaDB community开发的,由MariaDB Foundation主管。

安全性

今天的世界,安全是非常重要的, 这也是MariaDB开发人员特别关注的。该项目在MySQL的基础上维护自己的一套安全补丁。对于每个MariaDB的发布版本,开发人员将合并所有MySQL的安全补丁,如果有必要,我们还会增强它们。当发现有严重安全问题,开发人员立即准备和分发一个新版本的MariaDB,尽快修复此问题。

MariaDB团队发现并报告了许多在MySQL和MariaDB中存在的安全问题。MariaDB团队与http://cve.mitre.org/紧密合作,以确保所有的安全问题及时报告和足够解释其中的细节。安全细节通常在修复MariaDB和MySQL版本后才公开。

兼容性

MariaDB与MySQL在同一分支保持最新的版本,在大多数方面,MariaDB与MySQL几乎一样。所有的命令、接口、库和APIs,存在于MySQL,也存在于MariaDB。切换到MariaDB不需要转换数据库。MariaDB是真正替代MySQL的!此外,您可以利用MariaDB许多不错的新特性。

获得更多信息参照:MariaDB FAQ

目前版本&发布计划

当前稳定版本和MariaDB开发版本 (和许多以前的版本)可以从http://downloads.mariadb.org下载。

我们大约一个月更新到活跃版本。主版本发布大约9个月的时间间隔。10.x版本中可能是在6个月内时间间隔。

http://mariadb.org/jira上的路线图会让你知道期待的MariaDB下一个发布版本。这当然只是一个估计,但开发人员试图尽可能地坚持下去。

支持  

MariaDB和MySQL都将得到MariaDB社区支持。MariaDB和MySQL可以从几家公司包括Monty Program AbSkySQL获得24 x7、咨询、bug修复支持,同样也可以得到其他级别的支持。

另见

入门指南

MariaDB入门指南(安装,下载,等等……)

MariaDB获取、安装、升级

从哪下载MariaDB ?

源码、二进制(Linux、Solaris、windwows)和对于有些Linux发行版的rpm包都可以在 downloads.askmonty.org下载。

我们希望有对社区软件包维护感兴趣的人可以站出来为他们的发行版构建软件包。我们要求严格遵守软件包系统的最佳实践,如果我们的项目以任何方式阻碍了,请您反馈

如何安装包请参照这里

发行版包括MariaDB

参照: Distributions Which Include MariaDB

获取源代码

在我们Launchpad仓库您可以找到所有的源代码。

拉取或者提交代码,bzr(Bazaar)版本控制软件提供了一条阻力最小的路径。如果您不熟悉bzr,请参阅bzr文档对bzr版本控制有个理解。

有关创建您自己本地MariaDB分支的说明,参照:MariaDB源代码页

从源码编译MariaDB通用指令参照:Generic Build Instructions。源码页面有平台和特定信息的链接,包括我们如何建立发布包的信息。

MariaDB 二进制包安装

安装MariaDB二进制包

MariaDB二进制包命名规范:mariadb-VERSION-OS.tar.gz。确保下载了正确的版本用于您的机器。

安装二进制,解压到您选择的目录并运行mysql_install_db脚本。

在下面的例子中我们安装MariaDB在/usr/local/mysql目录(这是许多平台MariaDB的默认位置),然而任何其他目录也是可以的。

我们安装二进制用一个符号连接到原始的名字。这么去做的话,那么您可以通过修改符号链接指向另一个目录来容易地更改MariaDB版本。

注意: 对于MariaDB 5.1.32 只有一行”./scripts/mysql_install_db –user=mysql” 修改成 “./bin/mysql_install_db –user=mysql”

确保您使用正确的my.cnf文件

MariaDB搜索配置文件/etc/my.cnf”(在一些系统上的/etc/mysql/my.cnf”)和“~ /my.cnf”。如果旧文件my.cnf (可能来自系统安装MariaDB或MySQL的) 存在,您需要谨慎,不要将旧的my.cnf用于您新的二进制安装。

正常的解决办法是忽略/etc目录下的my.cnf文件。

通过创建自己的my.cnf文件在您的主目录,告诉mysql_install_db,mysqld_safe和可能的mysql(命令行客户端程序),只使用选项“defaults-file = ~/.my.cnf”。注意,这个选项为上面命令的第一个选项!

Root用户安装MariaDB到 /usr/local/mysql

如果您有root权限访问系统,您可能想将MariaDB安装在mysql的用户和组”(安装保持与mysql的兼容性):

groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar -zxvpf /path-to/mariadb-VERSION-OS.tar.gz
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db –user=mysql
chown -R root .
chown -R mysql data

您现在启动mysqld:

./bin/mysqld_safe –user=mysql &
or
./bin/mysqld_safe –defaults-file=~/.my.cnf –user=mysql &

测试连接,修改您的$PATH,这样您就可以调用客户端比如mysql、mysqldump等等。

export PATH=$PATH:/usr/local/mysql/bin/

您可能想要修改您的.bashrc或.bash_profile来固化。

安装MariaDB到任何目录

下面,修改默认安装路径。/usr/local为您选择的目录。

cd /usr/local
gunzip < /path-to/mariadb-VERSION-OS.tar.gz | tar xf -
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db –defaults-file=~/.my.cnf

如果上述gunzip命令有问题,您可以用tar代替gnu:

tar xfz /path-to/mariadb-VERSION-OS.tar.gz

现在启动mysqld:

./bin/mysqld_safe –defaults-file=~/.my.cnf &

安装后

在这之后,记得为所有来自于不可信源的访问账户都设置适当的密码,这样避免暴露主机的安全风险!在您的系统启动时同时也可以考虑使用mysql.server自动启动MariaDB。

MariaDB二进制文件类似于用于MySQL二进制发行版的通用的二进制文件。所以对于更多选项使用这些二进制文件,可以餐卡MySQL 5.5的通用二进制文件安装

用于构建二进制文件的具体步骤的细节,请参见MariaDB的知识库的编译部分。

安装MariaDB.deb文件

用APT安装MariaDB

对于Debian和Ubuntu,强烈建议使用apt-get、aptitude或另一个软件包管理器从仓库安装。

导入GnuPG签名密钥

首先导入gpg密钥,我们使用它签署存储库。这个密钥允许apt验证下载包的完整性。

我们的签名密钥id是0xcbcb082a1bb943db和完整的密钥指纹:

1993 69E5 404B D5FC 7D2F E43B CBCB 082A 1BB9 43DB

apt-key程序有一个简单的方法来把这个密钥导入apt:

sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

一会儿就导入签名密钥,在ubuntu或debian系统,上面的命令仍然是相同的。

例子:

localhost:~# apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /tmp/tmp.ASyOPV87XC –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key “Daniel Bartholomew (Monty Program signing key) <dbart@askmonty.org>” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

一旦密钥被添加,您就准备添加适当的资源库。

添加MariaDB到您的sources.list

使用我们的在线资源库配置工具,很容易生成适当条sources.list目 (也称为APT线)。

在该工具,选择“debian”或“ubuntu”,这取决于您正在使用的发行版,然后选择特定的系列,然后安装您想要的MariaDB版本。

您可以找出您使用哪个版本系列,通过: lsb_release -a

一旦您有了自己的sources.list条目,添加他们到本地/etc/apt/sources.list(如用“sudo gedit /etc/apt/sources.list”或者在sources.list.d/有一个单独文件如“sudo gedit /etc/apt/sources.list.d/mariadb.list“”)

您还可以使用的软件源码工具添加APT线路。这个工具在Ubuntu软件中心的“编辑”菜单下可以找到。在新立得软件包管理器这个工具叫做“资源库”,它被加载到“设置”菜单。在推出该工具,选择“其他软件”选项卡,点击“添加…“按钮和粘贴在APT的线(每个两行)。

用apt -get安装MariaDB

有了密钥和APT lines您现在可以运行:sudo apt-get update

……下载信息apt需要知道安装MariaDB。

可以用您最喜欢的包管理器安装MariaDB,例如: sudo apt-get install mariadb-server-5.5

apt -get安装MariaDB Galera Cluster

安装MariaDB Galera Cluster的介绍几乎与MariaDB安装一样。引入签名密钥的设置和创建资源。列表条目都是相同的。唯一的区别是在安装步骤。替代mariadb-server安装包,您安装mariadb-galera-server和galera包,就像这样:

sudo apt-get install mariadb-galera-server galera

如果服务器已经安装mariadb-server包,它将被自动删除再安装mariadb-galera-server。

MariaDB Galera Cluster更多信息参照Galera节。

手动安装.deb文件

虽然不推荐,可以手动下载并安装包(也就是说没有包管理器像apt-get)。在最近镜像下浏览repo/目录。这个.deb文件都分别在debian /pool/和ubuntu/pool/。

这里所用的命令是在Debian 5 amd64盒安装MariaDB 5.1.42(其他基于Debian的发行版应该类似):

sudo apt-get update
sudo apt-get install libdbi-perl libdbd-mysql-perl psmisc
sudo dpkg –install mysql-common_5.1.42-mariadb73_all.deb
sudo dpkg –install libmariadbclient16_5.1.42-mariadb73_amd64.deb libmysqlclient16_5.1.42-mariadb73_amd64.deb
mariadb-client_5.1.42-mariadb73_all.deb mariadb-client-5.1_5.1.42-mariadb73_amd64.deb mariadb-server_5.1.42-mariadb73_all.deb
mariadb-server-5.1_5.1.42-mariadb73_amd64.deb

评论

Re: Installing MariaDB .deb Files

如果您在防火墙后面,您也可以尝试通过端口80访问密钥:

sudo apt-key adv –recv-keys –keyserver hkp:keyserver.ubuntu.com:80 1BB943DB

Re: Installing MariaDB .deb Files

适当的链接是: sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 1BB943DB

Re: Installing MariaDB .deb Files

sudo apt-key adv –recv-keys –keyserver hkp:keyserver.ubuntu.com:80 1BB943DB

MariaDB RPM安装

MariaDB的项目为基于RPM的Linux发行版提供了RPM软件包和YUM资源库。这里的文章提供关于使用YUM资源库和RPM文件的信息和指令。

关于MariaDB RPM文件

这个页面描述了来自MariaDB发行版的几个RPM软件包的内容。

MariaDB 5.3及更低版本:

Package Name Description
MariaDB-client 客户端工具像mysql CLI,mysqldump,和其它
MariaDB-debuginfo 服务器资源和二进制文件构建的调试信息
MariaDB-devel 开发header和静态库
MariaDB-server 服务器和服务器工具,像myisamchk和mysqlhotcopy都在这里。它还包括字符集文件。
MariaDB-shared 动态客户端库
MariaDB-test mysql-client-test可执行

这些包的文件名类似:MariaDB-shared-5.2.5-99.el5.x86_64.rpm.

还有一个源代码RPM,文件名类似:MariaDB-5.3.7-116.el5.src.rpm.

MariaDB 5.5及以上版本的包:

Package Name Description
MariaDB-client 客户端工具像mysql CLI,mysqldump,和其它
MariaDB-common 符集文件和/etc/my.cnf
MariaDB-compat 客户端旧共享库,可能老版本的MariaDB或MySQL客户端需要
MariaDB-devel 开发header和静态库。
MariaDB-server 服务器和服务器工具,像myisamchk和mysqlhotcopy都在这里
MariaDB-shared 动态客户端库
MariaDB-test mysql-client-test可执行和mysql-test框架进行测试

这些包的文件名如:MariaDB-5.5.24-rhel5-i686-shared.rpm。

MariaDB 5.5+没有提供源代码RPM包。如果您想建立MariaDB 5.5 + RPM软件包 参照:Building MariaDB on CentOS

注意,被绑定服务器共享库-libmysqld是存在MariaDB-server 包,被绑定服务器静态库-libmysqld.a存在MariaDB-devel包。

更好的,您应该使用您的Linux发行版的包管理器来安装MariaDBRPM软件包例如yum或zypper。但是您也可以使用低级rpm工具。

用yum安装MariaDB

对于CentOS,RedHat,Fedora,强烈建议从一个存储库使用yum安装。这个告诉您完成这三个简单的步骤。

导入MariaDB签名密钥

首先导入gpg密钥我们使用它签署存储库。这个密钥使yum和rpm来验证下载包的完整性的。

我们签名密钥的id是0xcbcb082a1bb943db和完整的关键指纹是: 1993 69E5 404B D5FC 7D2F E43B CBCB 082A 1BB9 43DB

为方便,这些公共部分的密钥是储存在我们的YUM服务器。您可以使用rpm的应用程序很容易地导入这个密钥: sudo rpm –import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB

一旦密钥被添加,您准备添加适当的存储库。

添加MariaDB YUM库

我们对基于Linux发行版YUM有YUM资源库的。为您的发行版用我们在线的存储库生成器轻松地生成适当的MariaDB.repo实体。

目前我们为CentOS 5,CentOS 6,RHEL 5,Fedora 16有存储库。

一旦您有了自己的MariaDB.repo实体。将它添加到在/ etc / yum.repos.d /.(我们建议类似/etc/yum.repos.d/MariaDB.repo.)

一个CentOS 5 x86例子MariaDB.repo:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos5-x86
gpgcheck=1

用YUM 安装MariaDB

有了密钥和repo文件了,可以安装MariaDB:sudo yum install MariaDB-server MariaDB-client

安装完成后,开始MariaDB: sudo/etc/init.d/mysql start

用rpm工具安装MariaDB

本文描述了如何下载RPM文件和使用RPM命令安装。

链接到http://downloads.mariadb.org并选择希望的数据库版本,然后选择符合您的Linux发行版和架构的rpm包。

点击这些链接会使您有一个本地镜像。选择rpm链接并下载所需的包。包将类似如下:

MariaDB-client-5.2.5-99.el5.x86_64.rpm
MariaDB-debuginfo-5.2.5-99.el5.x86_64.rpm
MariaDB-devel-5.2.5-99.el5.x86_64.rpm
MariaDB-server-5.2.5-99.el5.x86_64.rpm
MariaDB-shared-5.2.5-99.el5.x86_64.rpm
MariaDB-test-5.2.5-99.el5.x86_64.rpm

对于标准服务器安装,您需要下载至少客户端、共享和服务器RPM文件。每个RPM软件包的更多信息参照:关于MariaDB RPM文件

安装MariaDB之前,要注意它将与已安装的MySQL发生冲突。检查MySQL是否已经安装,可以发出以下命令: rpm -qa ‘mysql*’

如果有必要,您可以在安装MariaDB之前移除已发现MySQL软件包。

MariaDB安装,使用命令: rpm -ivh MariaDB-*

您应该看到如下输出:

    Preparing…                ########################################### [100%]
   1:MariaDB-shared         ########################################### [ 14%]
   2:MariaDB-client         ########################################### [ 29%]
   3:MariaDB-client         ########################################### [ 43%]
   4:MariaDB-debuginfo      ########################################### [ 57%]
   5:MariaDB-devel          ########################################### [ 71%]
   6:MariaDB-server         ########################################### [ 86%]

一定要遵循上面的给出指令,并为root用户设置密码,既可以使用mysqladmin或通过运行/ usr/bin/ mysql_secure_installation脚本。

MariaDB RPM文件的安装将安装MySQL工具在/usr/ bin目录。您可以使用MySQL客户机程序确认MariaDB已经安装。发出命令,mysql应该给出MariaDB光标。

参照:

检查MariaDB RPM包的签名

自从MariaDB 5.1.55,MariaDB RPM软件包被签名。

我们使用密钥id为1BB943DB和密钥指纹是: 1993 69E5 404B D5FC 7D2F E43B CBCB 082A 1BB9 43DB

检查签名首先需要输入的密钥的共钥部分: gpg –keyserver hkp://pgp.mit.edu –recv-keys 1BB943DB

接下来,您需要让pgp知道密钥:

gpg –export –armour 1BB943DB > mariadb-signing-key.asc
sudo rpm –import mariadb-signing-key.asc

您可以检查密钥是否已经导入: rpm -qa gpg-pubkey*

一旦密钥被导入,您可以在下载目录下通过运行下面的命令来检查MariaDB RPM文件的签名:rpm –checksig $(find . -name ‘*.rpm’)

上面的输出将类似这样(确保gpg输出都是ok):

me@desktop:~$ rpm –checksig $(find . -name ‘*.rpm’)
./kvm-rpm-centos5-amd64/rpms/MariaDB-test-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/rpms/MariaDB-server-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/rpms/MariaDB-client-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/rpms/MariaDB-shared-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/rpms/MariaDB-devel-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/rpms/MariaDB-debuginfo-5.1.55-98.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
./kvm-rpm-centos5-amd64/srpms/MariaDB-5.1.55-98.el5.src.rpm: (sha1) dsa sha1 md5 gpg OK

参照:

RedHat/CentOS安装MariaDB故障排除
下面的文章是当在RedHat/CentOS上安装MariaDB遇到不同的问题 

在RedHat/CentOS您既可以安装RPM 也可以tar ball。RPM是推荐使用的版本,但除非您想安装MariaDB的多种版本或安装在一个非标准位置。

替代MySQL

如果您移除MySQL RPM安装MariaDB,注意,MySQL RPM在卸载会把/etc/my . cnf重命名/ etc / my.cnf.rpmsave。

在安装之后您可以按照如下方式来恢复您的MariaDB配置选项:

mv /etc/my.cnf.rpmsave /etc/my.cnf

不支持旧版本的配置选项

如果您在在/etc/my.cnf或其他my.cnf中文件正使用任何下列选项,应删除它们。这也同样适用于MySQL 5.1或更新版本: skip-bdb

参照:

MariaDB 在DirectAdmin中使用RPMs

如果您在DirectAdmin中用YUM安装MariaDB遇到任何问题,那么下面的指导可能会有帮助。这个过程是非常简单的。

注意:用YUM安装比手动安装MariaDB RPM软件包更好 ,如果您有以下问题,如:

Starting httpd:
httpd:
Syntax error on line 18 of /etc/httpd/conf/httpd.conf:
Syntax error on line 1 of /etc/httpd/conf/extra/httpd-phpmodules.conf:
Cannot load /usr/lib/apache/libphp5.so into server:
libmysqlclient.so.18: cannot open shared object file: No such file or directory

或者

Starting httpd:
httpd:
Syntax error on line 18 of /etc/httpd/conf/httpd.conf:
Syntax error on line 1 of /etc/httpd/conf/extra/httpd-phpmodules.conf:
Cannot load /usr/lib/apache/libphp5.so into server:
/usr/lib/apache/libphp5.so: undefined symbol: client_errors

RPM安装

安装RPM包,有一个RPM工具快速容易安装MariaDB。按照说明那里。

必要的编辑

我们不想让管理系统的custombuild删除/覆盖我们安装的MariaDB每当执行更新时。为了纠正这一点,禁用自动安装MySQL。

编辑/usr/local/directadmin/custombuild/options.conf

把mysql_inst=yes修改成mysql_inst=no

注意:当MariaDB手动安装(即不使用YUM)、更新并不是自动的。您将需要自己更新rpm。

MariaDB RPM为什么不包含源代码RPM(SRPMS)?

我们使用构建系统的CMake CPack包生成器CMake CPack Package Generators)来构建MariaDB rpm包。这个系统被称为CPackRPM。

CPackRPM在生成一个二进制RPM非常方便,因此不需要您做% prep,%build和%install。在cmake.list上 Eric Noulard提供有关这个问题好的解释。

我们目前正在研究使用源RPM生成器通过宏作为备有证明文件

如果您需要编译和创建自己的MariaDB.rpm文件,参见Building MariaDB on CentOS

Windows上安装MariaDB MSI包

MSI包可用从Mariadb5.2.6版本开始。包可被用于x86(32位)和x64(64位)处理器架构。我们将使用一个x64(32位安装程序非常类似)安装屏幕截图来演示。

重要: 和Mariadb5.2.5及更早版本的安装器NSIS保持兼容。如果您在已经安装MariaDB5.2.5和更早版本的机器上为MariaDB 5.2安装MSI包, MSI包将失败并告诉您卸载5.2旧版本。这种行为被设计的,您可以无须担心地继续卸载5.2.x。现有的数据库将不会被删除。

图形安装

典型的安装模式。开始安装程序,只需点击mariadb – <主要> . <次要> . <补丁> . msi

欢迎

许可证协议

点击“我接受条款”

自定义安装

在这里,您可以选择安装什么功能。默认情况下,所有的功能都被安装除了调试标志。如果“数据库实例”功能被选中,安装程序将创建一个数据库实例,默认情况下作为一种服务来运行。在这种情况下,安装程序将显示额外的对话框来控制各种数据库属性。注意,您不一定在这个阶段必须创建一个实例。例如,如果您已经有MariaDB数据库或MySQL作为服务运行,您可以在安装过程仅升级。同样,您也可以在安装之后创建额外的数据库实例,用mysql_install_db.exe。

注意:默认情况下,如果您安装了一个数据库实例,数据目录将在安装路径下的“data”文件夹。更改数据目录位置 ,在功能树选择“Database instance”,并使用“浏览”按钮来点到另一个地方。

数据库认证/安全相关的属性

如果您选择的“Database instance”功能这个对话框显示。在这里,您可以为数据库root用户设置的密码和指定root是否从可以从远程机器访问数据库。“Create anonymous account”设置允许用户匿名(未验证)。它默认是关闭的,它并不推荐更改此设置。

数据库其他属性

  • 实例作为服务

定义数据库运行是否作为一个服务以及服务名称。建议在运行您的数据库实例作为一个服务,它极大地简化了数据库管理。默认服务名称是“MySQL”,为了兼容性原因(相同名称“mysqld.ext –install安装“将选择也一样)。

  • 网络可用

是否启用TCP / IP(推荐),以及哪些端口MariaDB应该听听。如果安全是一个问题,您可以在安装后改变“bind-address”参数绑定到只有本地地址。如果“启用网络功能”复选框deselected,数据库将使用命名管道进行交流沟通。

  • 事务优化

如果这个复选框被选中时,默认存储引擎设置为Innodb(或XtraDB)和sql_mode参数设置为”NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES”。您还可以定义Innodb / Xtradb缓冲池大小。默认的缓冲池大小是12.5%的RAM或根据您的需求,您可以给innodb更多(70 – 80%的RAM)。 32位版本的MariaDB限制最大缓冲池的大小,这是大约1 GB,由于虚拟地址空间对32位进程的限制。

准备安装

此时,所有的安装设置被收集。点击“安装”按钮。

用户帐户控制(UAC)弹出

如果启用了用户帐户控制(Vista或更高),您会看到这个对话框。单击“是”。

结束

现在安装完成。如果您有可升级的MariaDB / MySQL实例,作为服务运行,这个对话框将给出一个“您想升级现有的实例”复选框(如果被选中, 安装后它推出升级向导)。  如果您安装了一个数据库实例作为服务,该服务将已经运行

在开始菜单的新条目

  •  MySQL客户端启动命令行:mysql.exe
  • 命令提示符-启动一个命令提示符。设置环境,这样的“bin”目录中安装包括到PATH环境变量,即您可以使用此命令提示发出MariaDB命令(mysqldadmin,mysql等等……)
  • 数据库目录-在资源管理器中展开的数据目录
  • 错误日志——在记事本打开该数据库错误日志。
  • My.ini -在记事本打开数据库配置文件my.ini。
  • 升级向导——启动向导来升级现有的MariaDB / MySQL数据库实例到该MariaDB版本。

图形卸载

在浏览器applet”程序和功能”(或在较早的Windows的 “添加/删除程序”),找到MariaDB的入口,选择卸载/变化和点击“删除”按钮下面的对话框中。

如果您安装了一个数据库实例,您需要决定您想要删除或保持数据库中的数据目录。

 

默认安装

MSI安装器也支持非图形化安装。在其最简单的形式的安装即所有的参数默认的安装: msiexec /i path-to-package.msi /qn

注意:安装是静态的,由于msiexe.exe的/ qn开关(没有用户界面),如果您省略开关,安装将有完整的用户界面。

属性

静态安装也支持安装属性(属性将和图形界面的复选框的”选”与”不选”相对应。例如检查/未经检查的一个复选框的状态在UI,用户密码,等等)。用属性命令行安装MSI包: msiexec /i path-to-package.msi [PROPERTY_1=VALUE_1 ... PROPERTY_N=VALUE_N] /qn

MSI安装器包有属性的名称,只包含大写字母。按照惯例,布尔型属性,一个空值意味着“false”和一个非空是“true”。

MariaDB安装支持以下属性:

属性名 默认值 描述
INSTALLDIR %ProgramFiles%MariaDB <version> 安装路径
PORT 3306 服务器端口
ALLOWREMOTEACCESS 允许root用户远程访问
BUFFERPOOLSIZE RAM/8 Innodb的Bufferpool大小
CLEANUPDATA 1 移除数据目录(卸载)
DATADIR INSTALLDIRdata 数据目录的位置
DEFAULTUSER 允许匿名用户
PASSWORD root用户的密码
SERVICENAME Windows服务的名称。如果这个值为空不创建服务。
SKIPNETWORKING 跳过网络
STDCONFIG 对应在图形界面“optimize for transactions”,默认引擎innodb,严格的sql模式

功能

对于安装装置特性是一个Windows安装程序术语。在图形界面的特性树的“自定义设置”对话框。特性可以选择和重选择。

静默安装支持用特殊的属性添加的功能:ADDLOCAL=Feature_1,..,Feature_N 和移除功能: REMOVE=Feature_1,…, Feature_N

MariaDB安装程序的功能:

功能标示 是否默认安装 描述
DBInstance 安装数据库实例
Client 命令行客户端程序
MYSQLSERVER 安装服务器
DebugBinaries 安装mysqld-debug和客户端库的调试版本
SharedLibraries 安装客户端共享库
DEVEL 安装C / c++头文件和客户端库
Embedded 绑定服务器库
DEBUGSYMBOLS 安装调试符号

默认安装示例

这里的所有示例都需要以管理员身份运行(和高架命令在Vista或之后)

  •     安装的默认特性、数据库实例作为服务、非默认datadir和端口。

msiexec /i path-to-package.msi SERVICENAME=MySQL DATADIR=C:mariadb5.2data PORT=3307 /qn

  •    安装服务、添加调试符号,不加开发组件(客户端库和头文件)

msiexec /i path-to-package.msi SERVICENAME=MySQL ADDLOCAL=DEBUGSYMBOLS REMOVE=DEVEL /qn

静态卸载

静态卸载,用REMOVE=ALL property with msiexec:

msiexec /i path-to-package.msi REMOVE=ALL /qn

在卸载过程中,为了保持数据目录存在,您必须通过添加一个的参数:

msiexec /i path-to-package.msi REMOVE=ALL CLEANUPDATA=”" /qn

安装日志

在安装程序遇到bug,安装程序日志应该被用于诊断。在bug报告请附上日志。生成一个安装程序的日志, 在命令行开始安装程序中使用/ l开关,就像这样:

msiexec.exe /i path-to-package.msi  /l path-to-logfile.txt

在一台机器上运行mariadb 32位和64 位发行版

在同一个Windows x64可能安装32位和64位包

除了测试 ,这一特性在开发场景中是有效的,用户想要运行一个64位的服务器和两个32位和64位客户端组件。在这种情况下完整的64位包可以安装,包括一个数据库实例加上来自32位包与开发有关的特性(头和库)。

安装MariaDB Windows ZIP包

在Windows上开始使用ZIP包非常简单——这个发行版包含预构建数据库文件,在解压缩后可以立即使用。
您可以从命令提示运行mysqld.exe如下:
cd
binmysqld –console

然而,在用户会话像这样覆盖了简单的测试场景下的命令行运行MariaDB。

对于MariaDB 5.2.6和更高版本,对于任何严肃的目的, 使用mysql_install_db.exe创建数据库实例——它更安全(在默认情况下禁用匿名用户, 在数据库创建期间允许设置root密码),更方便(可以创建Windows服务,支持用户指定的数据目录)。

对MariaDB老版本,您可以按照在MySQL文档关于ZIP分发版的说明——这描述了手动过程或登记服务,保护数据库。

获取MariaDB源代码

这个页面的说明将帮助您下载有完整的修订历史的MariaDB源代码存储库的分发版。如果您想要一个没有修订历史源代码的tar包,参照MariaDB download page.

用Bazaar 检查源代码

先决条件

为版本控制您需要Bazaar

指令

1.准备一个目录来保存您的MariaDB代码:

mkdir $repo              # where $repo is some directory (ex: ~/repos)
cd $repo
bzr init-repo maria –format=2a           # this creates ~/repos/maria

2.得到一个干净的Maria repo本地副本:

cd $maria-repo # (ex: ~/repos/maria)
bzr branch lp:maria trunk

上述会给您最新的稳定MariaDB版本。如果您想要另一个版本使用lp:maria/5.2, lp:maria/5.3…对于一个完整的列表,去Launchpad和从页面顶部选择“代码”菜单。

  • 注意:最初的分支操作可以花很长时间取决于您的互联网连接的速度和launchpad的负载。对于这个初始的分支您需要下载600 + MB的数据。
  • 注意:Bzr写在Python和首次导出对非常缓慢的。即使在一个快速连接,1-2G字节的内存,也需要几个小时。

3.如果您得到一个错误,如:

bzr: ERROR: Unknown repository format: ‘Bazaar RepositoryFormatKnitPack6 (bzr 1.9)’

您正在使用的bzr版本太老了。使用版本1.12或更高版本将会修复这个错误。

4.如果您有升级您bzr和无法从launchpad成功获取分支,尝试使用源代码树tarball代替

5.您可以看到当前的历史:

cd $maria-repo/trunk
bzr log | less

6.如果您对MariaDB源代码感兴趣。获得帮助参照: Contributing Code.

7.如果在这一点上您只是想编译,参照:Compiling MariaDB .

源代码树Tarball

来自Launchpad那些有问题的MariaDB分支,我们创建了一个MariaDB树的完整存储库的tarball。

先决条件

您需要Bazaar和存储库一起使用。

使用源代码树

1.从一个MariaDB镜像下载mariadb-shared-repo.tgz文件。  

  • 该文件是292 MB,因此下载可能需要很长时间才能完成取决于您的互联网连接。

2.这个.tgz文件包含一个.bzr目录。.bzr目录的父目录(或变成)一个共享库包含MariaDB源代码。建议创建一个新目录,那么接下来的一步是为存储库创建一个目。将这个目录命名您喜欢的任何东西(“maria”, “mariadb”, “my”, “src”, etc…等等……)。一旦创建,cd到目录和解压文件。下面是一个示例使用同样的名字“mariadb”为新目录,该目录位于当前用户的home一个为” src “目录下 ,和mariadb-shared-repo.tgz文件位于命名Downloads的目录 (也在当前用户的home目录):

mariadbdir=”mariadb”
downloadsdir=”${HOME}/Downloads”
sourcecodedir=”${HOME}/src”
cd ${sourcecodedir}
mkdir ${mariadbdir}
cd ${mariadbdir}

tar -zxvf ${downloadsdir}/mariadb-shared-repo.tgz

3.解压后,您将有一个bzr共享存储库,但不是一个工作树。而在共享库目录,使用bzr分支命令来分支您有兴趣的MariaDB tree。例如:

  • bzr branch lp:maria/5.2
  • bzr branch lp:maria

4.多亏了存储库,上述命令将完成的非常快.

5.使用代码之前,确保您向下拉最新版本的源代码:

cd mariadb-5.2           #or to wherever your MariaDB tree is
bzr pull

6.现在您可以使用这个源代码树,好像已经从launchpad直接分支的.

评论

what am I doing wrong ?  petepdx

作为mysql用户所有事情都完成的

bzr branch lp:maria trunk

然后

./BUILD//compile-pentium64-max
make install
./bin/mysqld_safe –user=mysql
110707 15:13:09 mysqld_safe Logging to ‘/data1/mariadb/bts-info.rose.portland.local.err’.
110707 15:13:09 mysqld_safe Starting mysqld daemon with databases from /data1/mariadb
110707 15:13:09 mysqld_safe mysqld from pid file /data1/mariadb/bts-info.rose.portland.local.pid ended
cat bts-info.rose.portland.local.err
110707 15:13:09 mysqld_safe Starting mysqld daemon with databases from /data1/mariadb
110707 15:13:09 [Note] PrimeBase XT (PBXT) Engine 1.0.11-7 Pre-GA loaded…
110707 15:13:09 [Note] Paul McCullagh, PrimeBase Technologies GmbH, http://www.primebase.org
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
110707 15:13:09  InnoDB: Initializing buffer pool, size = 128.0M
110707 15:13:09  InnoDB: Completed initialization of buffer pool
110707 15:13:09  InnoDB: highest supported file format is Barracuda.
110707 15:13:09 Percona XtraDB (http://www.percona.com) 1.0.15-12.7 started; log sequence number 45356
110707 15:13:09 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
110707 15:13:09 [Note] Recovering after a crash using mysql-bin
110707 15:13:09 [Note] Starting crash recovery…
110707 15:13:09 [Note] Crash recovery finished.
110707 15:13:09 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
110707 15:13:09 mysqld_safe mysqld from pid file /data1/mariadb/bts-info.rose.portland.local.pid ended

Re: what am I doing wrong ?  dbart

安装运行后,MariaDB开始之前,您运行mysql_install_db脚本?一些错误的看起来有些东西丢失了。

查看更多细节参照:Generic Build Instructions

您可以参照: Running MariaDB from the Source Directory

Re: Getting the MariaDB Source Code    petepdx

shell变量$repo和$maria还没有设置

Re: Getting the MariaDB Source Code  dbart

他们只是占位符,不管您想要填写什么。.

Re: Getting the MariaDB Source Code    petepdx

cd mariadb-5.2

这个目录不存在

Re: Getting the MariaDB Source Code    11 months, 2 weeks ago dbart

这只是一个示例目录。关键是要cd到您的当地的MariaDB源代码目录并执行一个bzr更新工作之前的代码。我添加了一个注释来更好地表明这。

谢谢!

通用构建说明

这个页面的说明将帮助您从源代码编译MariaDB。为特定平台更多的完整的说明上可以链接到源代码编译页面找到。

首先,获取一份MariaDB源代码

接下来,准备您的系统能够编译源文件。如果您使用Linux是运行以下命令(取决于您的Linux发行版),很容易做到这点:

sudo apt-get build-dep mysql-server      # for Debian and Ubuntu-based distributions
sudo yum-builddep mysql                # for Fedora
sudo zypper si -d mysql-community-server  # for OpenSUSE

注意:在基于debian的发行,您可能会得到一个“您必须把一些’source’ URIs在您的sources.list”的错误。为了避免这种情况,确保/ etc / apt /sources.list包含源码存储库。

对于Debain紧缩:

deb http://ftp.debian.org/debian squeeze main contrib
deb http://security.debian.org squeeze/updates main contrib
deb-src http://ftp.debian.org/debian squeeze main contrib
deb-src  http://security.debian.org squeeze/updates main contrib.

在您的系统上,如何做到这一点,参考Linux发行版的文档。

编辑sources.list后,就做: sudo apt-get update

……然后使用上述build-dep命令。

注意:在openSUSE源包存储库可能不能用。以下命令将使它可用: sudo zypper mr -er repo-source

启用它后,您将能够运行zypper命令安装构建依赖项。

如果您不是以自己身份使用MariaDB,那么您应该创建一个mysql用户。下面的例子使用这个用户。

现在进入源目录并执行适当的构建脚本,符合您配置:

cd $maria-source-dir                     # ex: ~/repos/maria/trunk
BUILD/compile-pentium64-max          # Build for intel/amd 64 bit with all options
BUILD/compile-pentium-max             # Build for 32 bit pentum with all options
BUILD/compile-pentium64-debug-max     # Build for intel/amd 64 bit with debugging 
BUILD/compile-pentium64-valgrind-max  # Build for testing with valgrind

来看看一个构建脚本所做的,您可以来运行它启用–print选项。

如果没有合适的脚本,您也可以直接执行配置:

cd $maria-source-dir # ex: ~/repos/maria/trunk
BUILD/autorun.sh
./configure –with-plugin-xtradb
make
sudo make install

如果您使用的是MariaDB 5.5或以上(它使用cmake),您有一些编译问题,您可以获得更多编译信息通过: make VERBOSE=1

首次启动MariaDB

MariaDB首次启动之前要做的事:

  1. 确保mysql用户对目录有权限(如果用户不存在,您将需要创建它)
  2. 运行mysql_install_db脚本生成所需的系统表

这里有一个例子:

# The following assumes that the ‘mysql’ user exists and that we installed MariaDB
# in /usr/local/mysql
chown -R mysql /usr/local/mysql/
scripts/mysql_install_db –user=mysql
/usr/local/mysql/bin/mysqld_safe –user=mysql &

最大限度构建配置行

以下配置行就是我们使用的-max构建(包括所有的功能,我们认为是相关的)。这配置行用我们大多数二进制的构建:

./configure –prefix=/usr/local/mysql –enable-assembler
–with-extra-charsets=complex  –enable-thread-safe-client  –with-big-tables
–with-plugin-maria –with-aria-tmp-tables –without-plugin-innodb_plugin
–with-mysqld-ldflags=-static –with-client-ldflags=-static –with-readline
–with-ssl –with-plugins=max-no-ndb –with-embedded-server –with-libevent
–with-mysqld-ldflags=-all-static  –with-client-ldflags=-all-static
–with-zlib-dir=bundled –enable-local-infile

对于一个完整的选项列表,您能做的: configure –help

如果您想要测试已编译MariaDB,您可以做下面任何一个的:

make test
cd mysql-test ; mysql-test-run –force

注意:如果您正在测试或调试MariaDB,您可能想要从那里源代码运行它而不是用‘make install’安装的。如果是这样,参照:Running MariaDB from the Source Directory

增加版本号或标记一个版本

如果您想增加版本号或用一个特定的标签标记版本(表示mysqld –version),您可以通过编辑文件版本

安装后的任务

评论

Re: Generic Build Instructions   StylusEater

这里是一个快速脚本,我用来在各种Debian GNU / Linux系统(root用户运行)自动安装MariaDB 5.3.x:

#!/bin/bash
apt-get update
apt-get install build-essentials
cd /opt/
mkdir mariadb
cd mariadb
wget http://downloads.askmonty.org/f/mariadb-5.3.3-rc/kvm-tarbake-jaunty-x86/mariadb-5.3.3-rc.tar.gz/from/http:/ftp.osuosl.org/pub/mariadb
mv mariadb mariadb-5.3.3-rc.tar.gz
tar -xzf mariadb-5.3.3-rc.tar.gz 
ln -s mariadb-5.3.3-rc latest
cd latest    
mkdir /usr/local/mysql
mkdir /var/run/mysqld
groupadd mysql
useradd -d /usr/local/mysql -s /bin/false -g mysql
chown mysql:mysql /usr/local/mysql 
chown mysql:root /var/run/mysqld
apt-get install libncurses5-dev
./configure –disable-distribution –enable-assembler –with-gnu-ld –with-charset=utf8 –with-extra-charsets=none –without-uca –with-pthread –with-mysqld-user=mysql –with-fast-mutexes –with-atomic-ops=smp –with-big-tables –with-libevent=yes –with-mysqlmanager=no –without-man –with-plugins=max-no-ndb –prefix=/usr/local/mysql
make
make test
make install
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/bin/mysql_install_db –user=mysql
/usr/local/mysql/bin/mysqld_safe –user=mysql &
/usr/local/mysql/bin/mysql -u root

Re: Generic Build Instructions  byte

别忘了,对于mysql用户必须有/var/run/ mysqld存在。否则您会看到如下:

120131 13:21:16 [ERROR] mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2) 120131 13:21:16 [ERROR] Can’t start server: can’t create PID file: No such file or directory

这种安装方法出现以下错误像:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

所以您只能通过指定主机(mysql -h127.0.0.1)连接 mysql

用额外的模块/选项编译MariaDB

用TCMalloc编译MariaDB

多线程使用TCMalloc是一个最优替换malloc库的。同时,它包括一个内置堆调试器和分析器特性

用TCMalloc 构建MariaDB 5.5,您需要使用以下命令:cmake -DCMAKE_EXE_LINKER_FLAGS=’-ltcmalloc’  -DWITH_SAFEMALLOC=OFF

许多其他的malloc替换库(以及堆调试器、分析器),MariaDB可以用类似的方式。

用Vanilla XtraDB编译MariaDB

有时,需要用Vanilla XtraDB编译MariaDB。这一页描述了这个流程。这个过程是相当粗糙,由于我的目标只是一个once-off编译测试(也就是说,并不是包装和运输)

这个过程是适用于MariaDB 5.3.4和来自Percona Server 5.1.61的XtraDB。

wget http://s.petrunia.net/scratch/make-vanilla-xtradb-work-with-mariadb.diff
bzr branch /path/to/mariadb-5.3 5.3-vanilla-xtradb-r3
cd 5.3-vanilla-xtradb-r3/storage/
tar czf innodb_plugin.tgz innodb_plugin/
rm -rf innodb_plugin
tar czf xtradb.tgz xtradb/
rm -rf xtradb
cd ../../
tar zxvf ~/Percona-Server-5.1.61.tar.gz
cp -r Percona-Server-5.1.61/storage/innodb_plugin 5.3-vanilla-xtradb-r3/storage/
patch -p1 -d 5.3-vanilla-xtradb-r3/storage/innodb_plugin/ < make-vanilla-xtradb-work-with-mariadb.diff
cd 5.3-vanilla-xtradb-r3/
BUILD/autorun.sh
./configure –with-plugin-innodb_plugin
make

Linux构建环境配置

下面列出在linux和Mac OS X 构建MariaDB 所需的工具。如果没有全部,这些作为包存在您的发行版的包存储库,所以首先核对它们是否安装。参照在UbuntuCentOSGentoo这些平台构建MariaDB特定需要工具包。

MariaDB 5.5也需要:

在Linux上您可以用您的软件包管理器得到这些工具。在Mac OS X您需要Xcode和用Fink或者MacPorts安装剩下的项目。

Shell 变量

精简后面的步骤,我们开始通过设置几个shell变量。设置BZR和WORK_DIR变量的值以适合您的Linux发行版。其余的变量在这一环节中应该不需要改变。

二进制

BZR=”/usr/bin/bzr”

目录:

WORK_DIR=”${HOME}/work/monty_program”
MARIA_DIR=${WORK_DIR}/mariadb
MARIA_REPO=”lp:maria”
MARIA_MASTER=”${MARIA_DIR}/maria-local-master”
MARIA_WORK=”${MARIA_DIR}/maria”
PACKAGING_DIR=${WORK_DIR}/packaging
PACKAGING_REPO=”lp:~maria-captains/ourdelta/ourdelta-montyprogram-fixes”
PACKAGING_MASTER=”${PACKAGING_DIR}/ourdelta-montyprogram-fixes-local-master”
PACKAGING_WORK=”${PACKAGING_DIR}/ourdelta-montyprogram-fixes”

源代码检出

初始化您bzr的工作目录,如果没有做的话:

$BZR init-repo $MARIA_DIR
$BZR init-repo $PACKAGING_DIR

检出MariaDB源码:

$BZR branch $MARIA_REPO $MARIA_MASTER
$BZR branch $MARIA_MASTER $MARIA_WORK

检出源码包(仅为MariaDB5.3和更低版本)

评论

Re: Build Environment Setup for Linux byte

对于MariaDB 5.5,您还需要libaio-dev(因为MySQL 5.5也是需要这个)。有人不同意我可以验证这,然后更新文档。谢谢

Re: Build Environment Setup for Linux  dbart

我只尝试在没有安装libaio-dev一台机器上安装MariaDB 5.5,成功了。所以据我所知,这不是必需的。

安装MariaDB5.5过程与以前的版本是非常不同的,所以文档无论如何还需要更新 ,或至少5.5安装页面添加说明。

Re: Build Environment Setup for Linux byte

当进行源代码签出,基本获得头文件。如何选择特定版本/标签?

Re: Build Environment Setup for Linux dbart

这样的事情应该做:

bzr branch -rtag:${tagname} ${sourcedir} ${destname}

例如::

我使我的MariaDB 5.2树在文件夹中称为“5.2”。一个MariaDB 5.2.9分支树我都会做:

bzr branch -rtag:mariadb-5.2.9 5.2 mariadb-5.2.9

完成的分支过程后,我将有一个“mariadb-5.2.9”文件夹。

生成MariaDB源码tar.gz包

如何创建一个源代码tar.gz文件。

首先配置您的构建环境

然后使用automake/configure/make生成的tar文件:

BUILD/autorun.sh
./configure –with-plugin-xtradb
make dist

这将创建一个源文件的名称类似mysql-5.3.2-MariaDB-beta.tar.gz

另外参照 通用构建指令

 构建MariaDB二进制tar.gz包

如何生成二进制tar.gz文件。

MariaDB 5.3和更低版本

  • 使用make_binary_distribution来生成一个二进制tar文件

          cd mariadb-source
          ./scripts/make_binary_distribution

这将在您的当前目录创建一个源文件名称类似mariadb-5.3.2-MariaDB-beta-linux-x86_64.tar.gz中。

另一种选择是使用生成包的脚本。在这种情况下您开始不需要编译MariaDB源代码。

cd $PACKAGING_WORK
bakery/preheat.sh
cd bakery_{number}
bakery/tarbake51.sh last:1 $MARIA_WORK
bakery/autobake51-bintar.sh mariadb-{version_num}-maria-beta-ourdelta{number}.tar.gz

MariaDB 5.5和更高版本

如果二进制文件已建成的,您可以生成一个二进制tar包用:make package

评论

Re: Creating the MariaDB Binary Tarball  hakan

tarbake51.sh表明构建MariaDB 5.1。总而言之怎么构建5.2,5.3,和5.x?

为Mac设置构建环境

XCode

  • 安装来自苹果公司的Xcode (免费需要注册): http://developer.apple.com/tools/xcode/ 或者从您的Mac OS X安装硬盘 (macports需要XCode >= 3.1版本,如果您没有那个版本或更高的,您需要下载最新的版本,大小为900 + MB)

MacPorts

安装bzr

首先用aqua接口安装gtk (如果您喜欢X11变体,只需从以下行删除“”+quartz”和“+ no_x11”):

 sudo port install pango +quartz +no_x11
sudo port install cairo +quartz +no_x11
sudo port install gtk2 +quartz

下一步安装bzr及其工具:

sudo port install bzr
sudo port install bzrtools
sudo port install bzr-gtk

或者从http://wiki.bazaar.canonical.com/Download下载.dmg(镜像文件)和安装它

安装Mysql / MariaDB所需构建工具

  • bison sudo port install bison
  • autoconf (这可能已经安装了sudo port install autoconf
  • libtool (这可能已经安装了) sudo port install libtool

您的Mac现在应该拥有获取,编译,和与MariaDB源代码工作所需一切。下一步是真正获取一份代码。获取帮助参照获取MariaDB源代码页。

评论

Re: Build Environment Setup for Mac  hakan

最新的XCode > = 3.2编译MariaDB变得容易。只需安装XCode > = 3.2和bzr > = 2.0和您拥有您想要的一切。

您可以从http://wiki.bazaar.canonical.com/Download获取bzr

简要情况:

bzr init-repository /Users/hakan/work/monty_program
cd /Users/hakan/work/monty_program
bzr branch lp:maria maria-local-master
bzr branch maria-local-master maria
cd maria
BUILD/compile-amd64-debug-max-no-ndb
cd mysql-test
./mysql-test-run.pl

如果您想加快编译时间。您从fink或MacPorts使用ccache

在CentOS构建MariaDB

CentOS建构条件

  • MariaDB 源代码
  • Bzr . MariaDB使用它,CentOS的. bzr版本太老了。您必须从源代码安装Bazaar
  • 下面的rpm包:
    • gperf
    • rpm-devel
    • rpm-build
    • rpmdevtools
    • libdbi

  构建MariaDB 5.3和更低版本

  构建MariaDB低于5.5版本的,您需要额外条件:

  •  打包脚本
  •  对于一个完全自动化的构建—sudo没有密码。在生产系统上这是不推荐!您已经被警告过了!
  • visudo
  • 未注释的行 %wheel  ALL=(ALL) NOPASSWD: ALL
  • usermod -a -G wheel {your_system_username}

.rmp构建步骤

   首先设置您构建的环境

   然后生成包

cd $PACKAGING_WORK
bakery/preheat.sh
cd bakery_{number}
bakery/tarbake51.sh last:1 $MARIA_WORK
bakery/autobake51-centos.sh mariadb-{version_num}-maria-beta-ourdelta{number}.tar.gz

升级您的存储库

在随后的包装的建立,您只是更新您的存储库和运行打包脚本:

rm -rf $MARIA_WORK
rm -rf $PACKAGING_WORK
cd $MARIA_MASTER
$BZR pull
$BZR branch $MARIA_MASTER $MARIA_WORK
cd $PACKAGING_MASTER
$BZR pull
$BZR branch $PACKAGING_MASTER $PACKAGING_WORK

现在您可以再次创建包。

构建MariaDB 5.5及更高版本

构建MariaDB5.5版本,您需要安装cmake。如果您想建立.rpm软件包,您至少需要cmake 2.8.7。否则cmake 2.6也可以。

请注意,您不需要任何打装脚本和构建过程不需要root权限。

.rpm 构建步骤

首先配置您的构建环境。忽略打包脚本部分。

如果您想构建.rpm 包:

cmake -DRPM=centos .
make package

您可能希望指定”centos5”或“centos6”代替“centos“。这影响到生成的rpm软件包名称。您还可以指定任何其他cmake参数配置您想要的任何方式二进制文件。例如, 在CentOS 5构建我们的版本我们使用

cmake .  -DBUILD_CONFIG=mysql_release -DRPM=centos5
make package

评论

Re: Building MariaDB on CentOS openiduser7

我们在哪能找到新的MariaDB 5.5.spec文件啊?

Re: Building MariaDB on CentOS  sergii

看上面。没有.spec文件。在需要的时候cmake自动生成它。

如果您想要一个.spec文件—获得MariaDB 5.5源码树,和上面一样运行cmake和make ,然后您会在树中发现spec文件。

Re: Building MariaDB on CentOS byte

我明白,谢谢您的解释 :)

Re: Building MariaDB on CentOS byte

在做: bakery/tarbake51.sh last:1 $MARIA_WORK 后,在目录可以获得一个tar 包

运行: bakery/autobake51-centos.sh mariadb-[TAB] (因为它的名称可能类似mariadb-5.3.2-beta.tar.g)

获取一个错误信息:

cp: cannot stat `/srv/shared/rpmsign/home-dot-rpmmacros’: No such file or directory

这是由于签署相关foo

Also note this later: [colin@rhel6-amd64 bakery-102]$ bakery/autobake51-centos.sh mariadb-5.3.2-beta.tar.gz cp: cannot create regular file `/usr/src/redhat/SOURCES/mariadb-5.3.2-beta.tar.gz’: Permission denied cp: cannot create regular file `/usr/src/redhat/SOURCES/MySQL-OurDelta-shared-5.0.87.d10-65.el6.x86_64.rpm’: Permission denied

权限错误. 您不应该用root 来构建…

在Gentoo上构建MariaDB

MariaDB存在在Gentoo,所以构建步骤是:

  1. 同步您的树::emerge –sync
  2. 构建MariaDB:emerge mariadb

在Ubuntu构建MariaDB

Ubuntu 构建必要工具

  • 打包脚本
  • MariaDB源代码
  • 下面的Ubuntu包:
  • build-essential dpkg-dev devscripts hardening-wrapper autoconf automake1.9 autotools-dev binutils bison chrpath debhelper defoma doxygen dpatch dvipdfmx fakeroot fontconfig-config g++ g++-4.3 gawk gcc gcc-4.3 gettext ghostscript ghostscript-x gs gsfonts html2text intltool-debian libc6-dev libcroco3 libcups2 libcupsimage2 libfontconfig1 libfontenc1 libfreetype6 libgomp1 libgs8 libice6 libjpeg62 libkpathsea4 libltdl7 libltdl7-dev libmail-sendmail-perl libncurses5-dev libpaper-utils libpaper1 libpng12-0 libpoppler4 libreadline5-dev libsm6 libstdc++6-4.3-dev libsys-hostname-long-perl libtiff4 libtool libwrap0-dev libxaw7 libxfont1 libxmu6 libxpm4 libxt6 linux-libc-dev lmodern m4 make patchutils po-debconf psfontmgr tex-common texlive-base texlive-base-bin texlive-base-bin-doc texlive-common texlive-doc-base texlive-latex-base texlive-latex-base-doc ttf-dejavu ttf-dejavu-core ttf-dejavu-extra xfonts-encodings xfonts-utils zlib1g-dev

安装上述包简单的方法:

 apt-get build-dep mysql-server-5.1
apt-get install build-essential dpkg-dev devscripts hardening-wrapper

 Ubuntu .deb 构建步骤

首先配置您的构建环境

Debian软件包打包

cd $PACKAGING_WORK
bakery/preheat.sh
cd bakery_{number}
bakery/tarbake51.sh last:1 $MARIA_WORK
bakery/autobake51-deb.sh mariadb-{version_num}-maria-beta-ourdelta{number}.tar.gz

在随后的打包的构建,您只是更新您的存储库和再运行上面打包脚本。

 升级存储库:

rm -rf $MARIA_WORK
rm -rf $PACKAGING_WORK
cd $MARIA_MASTER
$BZR pull
$BZR branch $MARIA_MASTER $MARIA_WORK
cd $PACKAGING_MASTER
$BZR pull
$BZR branch $PACKAGING_MASTER $PACKAGING_WORK

现在您可以再次运行在Package the Debian packages下步骤

Monty 程序最新的补丁

SergeyP对构建做了一些补丁,它还没有在ourdelta的市场(which are not yet in ourdelta’s repo)。它们被推进:lp:maria-captains/ourdelta/ourdelta-mariadb51-2-montyprogram-fixes

在这时候,从(repo produces debs)的构建,将会成功安装。欢迎推进深一步的补丁进入源码树。

加快构建

为了加快构建,您需要在<code>bakery/autobake-deb.sh</code>生成和提交下列的改变:

-export DEB_BUILD_OPTIONS=”fulltest” +export DEB_BUILD_OPTIONS=”nocheck”

在构建后

在构建这些包后,把它们放在一个存储库。参照Creating a Debian Repository页的说明。

Window构建MariaDB

Windows 上构建MariaDB 5.2和更高版本的过程和MySQL5.5是兼容的,所以您可以使用MySQLCMake Wiki的说明。同时,为Visual Studio Express用户的详细分步说明可以在这里找到。这里的说明不呈现上述两个源代码的知识。

构建必要条件

构建MariaDB需要以下:

  • Visual C++:我们目前支持Visual Studio 2008和2010版,包括(免费) 快捷版(通常我们试图支持最近的两个版本). 安装最新的服务包,对VS2008和VS2010 ,SP1是(截至撰写本文时)最新的。
  • Bazaar: 从源码树构建需要该软件. 使用独立的安装程序并选择默认的安装选项。
  • CMake 2.8: 构建系统
  • Bison from GnuWin32: Bison c创建SQL解析器的一部分. 当下载选择”Complete package except sources” 。

注意: 不要安装这个在您的默认路径与空间(例如在C:Program FilesGnuWin32),构建将打破由于这bison bug。安装到C: GnuWin32代替

在安装过后,添加 C:GnuWin32bin to 到您系统PATH.

验证bzison.exe,bzr.exe ,cmake.exe和perl.exe在PATH环境变量是否可以找到, 从命令行提示符用“where bison”、“ where bzr”,等等……。

构建 Windows二进制

上述说明是对MariaDB 5.2或更高版本。如何构建5.1版本的说明,看看”旧式构建”一节中的介绍。

分支MariaDB bzr的存储库,或解压源代码归档。在命令提示符下,切换到您的源目录,然后执行:

mkdir bld
cd bld
cmake ..
cmake –build . –config Relwithdebinfo

上面的示例在子目录中命名bld为32位系统的构建一个发布配置。“cmake……“是配置步骤”, “cmake –build . –config Relwithdebinfo”是构建步骤。

构建变更

调试构建

构建调试版本:cmake  –build . –config Debug

X64构建

默认情况下,cmake将创建32位的项目。对于64位, 在配置步骤您必须通过CMake“生成器”参数使用- G,例如:

对于VS2010: cmake .. –G “Visual Studio 10 Win64”
对于 VS2008:cmake .. –G “Visual Studio 9 Win64”
对于全部可用的生成器,调用“cmake“没有任何参数

IDE 构建

取代调用”cmake  –build”如上,打开MySQL.sln。当Visual Studio开启,选择构建/编译。

Nmake 构建

确保Visual Studio环境变量设置正确,例如从“Visual Studio 2010命令提示符” 构建(开始= >所有程序= >微软Visual Studio 2010 = > Visual Studio工具= > Visual Studio Commad提示(2010))。它可以很方便地从“Visual Studio命令提示符(2010)在桌面创建一个快捷方式(导航在开始菜单中找到它,然后右击 =  >发送到桌面(创建快捷方式)“在命令行上,执行:

mkdir bld
cd bld
cmake .. -G “NMake Makefiles”
nmake

您可以选择通过cmake 的参数 -DCMAKE_BUILD_TYPE = { Debug | RelWithDebInfo }要么调试或构建发行版本。

devenv构建

确保Visual Studio环境变量为构建是正确设置 (见上)执行:
devenv  mysql.sln /build relwithdebinfo
或者,为调试构建
Devenv  mysql.sln /build debug

可选的构建参数

MySQL CMake Wiki描述了在构建过程如何使用可选参数。也许单重要参数在MariaDB是WITH_EMBEDDED_SERVER(构建嵌入式服务器)。在构建这不是默认设置,因为它成倍地增加编译时间。使用cmake -DWITH_EMBEDDED_SERVER = 1使嵌入的构建。

构建ZIP包

cmake  –build . – config relwithdebinfo –target  package

构建MSI包

cmake  –build . – config relwithdebinfo –target  msi
一些版本的CMake 2.8(2.8.3用VS2010构建MSI的命令)稍微不同:
cmake  –build . – config relwithdebinfo –target  win/packaging/msi

在MSI的安装程序包含HeidiSQL

MariaDB 5.2.7开始,就可能建立一个安装程序,它包括第三方产品,在MWL # 200描述了。目前只HeidiSQL支持被使用,它包括在官方的构件。使用CMake参数-DWITH_THIRD_PARTY = HeidiSQL将其包含在安装程序。

MariaDB发布处理支持代码签名

支持authenticode MariaDB构建可选支持用可选参数SIGNCODE代码签名进行代码验证。在配置步骤期间使用cmake -DSIGNCODE = 1在ZIP和MSI包签署的二进制文件。

重要:SIGNCODE = 1工作, 用户运行构建需要安装一个有效的数字证书的认证码到他的证书存储,否则打包步骤就会失败。

MariaDB发行版本构建软件包

用Visual Studio 2010构建二进制发行版的完整的脚本:

mkdir bld
cd bld
cmake .. -DWITH_EMBEDDED_SERVER=1 -DSIGNCODE=1 -DWITH_THIRD_PARTY=HeidiSQL
cmake –build . –config relwithdebinfo –target package
cmake –build . –config relwithdebinfo  –target msi

这个命令序列将在bld目录产生一个ZIP包(例如mariadb-5.2.6-win32.zip)和MSI包(例如mariadb-5.2.6-win32.msi)

旧格式的构建(MariaDB 5.1)

MariaDB 5.1构建和高版本之间的不同是:

  • 5.1除了源码外不被构建.
  • 5.1在配置区间需要一个额外步骤 (winconfigure-mariadb.bat).
  • 5.1需要一个源码发行版预先打包的 (只在Unix上)来创建ZIP包。它还需要软件创建ZIP。
  • 5.1没有出现新的MSI安装程序,而是使用NSIS。构建NSIS也需要源码发行版预先打包和不能由bzr存储库生成。

这里是如何构建5.1:

  winconfigure-mariadb.bat
  cmake .
  cmake . –build relwithdebinfo

5.1中的 ZIP打包

这是生成5.1二进制压缩包过程如下:

在BuildBot ,是用hardy-amd64-makedist 生成器来做的(In BuildBot, this is done using the hardy-amd64-makedist builder)。

  • Windows上编译和打包. 是通过在Windows解压源代码压缩文件和运行sh win/make_mariadb_win_dist.
  • 在BuildBot ,是用win32-make-noinstall-zip生成器来做的.

5.1中的 NSIS安装程序

如果您想创建的版本,您还需要NSIS

构建服务器像往常一样。然后您应该构建版本,而不是调试或任何其他。当服务器已经建成,只需要在顶层目录中运行”cpack”创建.exe包。

其他

  • 在5.2和更高版本, 任何构建步骤Cygwin是不需要和不受支持的。如果您可以,不要使用它。
  • 要编译OQGRAPH引擎, Boost需要安装。从http://www.boost.org/下载Boost redistribution和解压缩。设置环境变量BOOST_ROOT来指向在前面的解压目录。注意:OQGRAPH构建目前在x64上禁用,由于错误Bug #756966

FreeBSD构建MariaDB

也许有人正使用mariadb的端口刚好在FreeBSD端口树。(数据库/ mariadb – {客户端、服务器、脚本})(或可用预编译包)。参照http://www.freshports.org/databases/mariadb-server

另外,下面的链接中包含大量的信息,在FreeBSD如何“手动”构建MariaDB: http://www.rasyid.net/2010/11/07/how-to-install-mariadb-on-freebsd/

Mac OS X 用Homebrew 构建MariaDB

提供MariaDB工作已经完成通过自制Homebrew)程序包管理器,它被说成Mac OS x包丢失的管理器为。一旦您已经安装了自制程序(Homebrew)(使用命令行brew),您所要做的就是: brew update

编译MariaDB

您可以运行搜索(brew search mariadb),如果您想要得到关于它更多的信息,您能做的: brew info maria。当您准备安装MariaDB,只需执行: brew install mariadb

由于MariaDB 5.2.6,它会引入输入字符串,输出将类似如下:

lovegood:~ byte$ brew install mariadb
Warning: It appears you have Macports or Fink installed
Software installed with other package managers causes known problems for
Homebrew. If formula fail to build uninstall Macports/Fink and reinstall any
affected formula.
Also installing dependencies: readline
==> Downloading ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file vi_mode.c
patching file callback.c
==> ./configure –prefix=/usr/local/Cellar/readline/6.2.1 –mandir=/usr/local/Ce
==> make install
==> Caveats
This formula is keg-only, so it was not symlinked into /usr/local.
OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.
Generally there are no consequences of this for you.
If you build your own software and it requires this formula, you’ll need
to add its lib & include paths to your build variables:
  LDFLAGS: -L/usr/local/Cellar/readline/6.2.1/lib
  CPPFLAGS: -I/usr/local/Cellar/readline/6.2.1/include
==> Summary
/usr/local/Cellar/readline/6.2.1: 32 files, 2.1M, built in 31 seconds
==> Downloading http://ftp.osuosl.org/pub/mariadb/mariadb-5.2.6/kvm-tarbake-jaun
######################################################################## 100.0%
==> ./configure –without-docs –without-debug –disable-dependency-tracking –p
==> make install
==> Caveats
Set up databases with:
    unset TMPDIR
    mysql_install_db
If this is your first install, automatically load on login with:
    cp /usr/local/Cellar/mariadb/5.2.6/com.mysql.mysqld.plist ~/Library/LaunchAgents
    launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
If this is an upgrade and you already have the com.mysql.mysqld.plist loaded:
    launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
    cp /usr/local/Cellar/mariadb/5.2.6/com.mysql.mysqld.plist ~/Library/LaunchAgents
    launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Note on upgrading:
    We overwrite any existing com.mysql.mysqld.plist in ~/Library/LaunchAgents
    if we are upgrading because previous versions of this brew created the
    plist with a version specific program argument.
Or start manually with:
    mysql.server start
Warning: m4 macros were installed to “share/aclocal”.
Homebrew does not append “/usr/local/share/aclocal”
to “/usr/share/aclocal/dirlist”. If an autoconf script you use
requires these m4 macros, you’ll need to add this path manually.
==> Summary
/usr/local/Cellar/mariadb/5.2.6: 231 files, 44M, built in 10.9 minutes
lovegood:~ byte$

安装MariaDB

一旦完成,您需要做以下几点:

unset TMPDIR
mysql_install_db

当您运行mysql_install_db,您将看到以下输出:

lovegood:~ byte$ mysql_install_db
Installing MariaDB/MySQL system tables in ‘/usr/local/var/mysql’ …
OK
Filling help tables…
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
/usr/local/Cellar/mariadb/5.2.6/bin/mysqladmin -u root password ‘new-password’
/usr/local/Cellar/mariadb/5.2.6/bin/mysqladmin -u root -h lovegood.local password ‘new-password’
Alternatively you can run:
/usr/local/Cellar/mariadb/5.2.6/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
See the MariaDB knowledge or the MySQL manual for more instructions.
You can start the MariaDB daemon with:
cd /usr/local/Cellar/mariadb/5.2.6 ; /usr/local/Cellar/mariadb/5.2.6/bin/mysqld_safe –datadir=/usr/local/var/mysql
You can test the MariaDB daemon with mysql-test-run.pl
cd /usr/local/Cellar/mariadb/5.2.6/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/Cellar/mariadb/5.2.6/bin/mysqlbug script!
The latest information about MariaDB is available at http://www.askmonty.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from
Monty Program Ab. You can contact us about this at sales@askmonty.org.
Alternatively consider joining our community based development effort:
http://askmonty.org/wiki/index.php/MariaDB#How_can_I_participate_in_the_development_of_MariaDB
lovegood:~ byte$

启动MariaDB

一旦完成,如果您正运行产生实例,请记住运行mysql_secure_installation。如果您只是测试它,按照下面的说明开始:

lovegood:~ byte$ cd /usr/local/Cellar/mariadb/5.2.6 ; /usr/local/Cellar/mariadb/5.2.6/bin/mysqld_safe –datadir=/usr/local/var/mysql

110614 20:27:38 mysqld_safe Logging to ‘/usr/local/var/mysql/lovegood.local.err’.

chown: /usr/local/var/mysql/lovegood.local.err: Operation not permitted

110614 20:27:38 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql

完成了!现在您可以运行mysql -uroot和登录。

使用MariaDB

lovegood:~ byte$ mysql -uroot
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 4
Server version: 5.2.6-MariaDB Source distribution
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
MariaDB [(none)]> SELECT VERSION();
+—————+
| VERSION()     |
+—————+
| 5.2.6-MariaDB |
+—————+
1 row in set (0.00 sec)
MariaDB [(none)]>

升级MariaDB

首先您需要更新您的brew的安装程序。这可以通过运行brew更新命令。接下来您只需要运行: brew upgrade mariadb

诸知的问题

目前,默认编译有一些引擎安装。通过这就知道:

MariaDB [(none)]> SHOW ENGINES;
+————+———+————————————————————————————————–+————–+——+————+
| Engine     | Support | Comment                                                                                          | Transactions | XA   | Savepoints |
+————+———+————————————————————————————————–+————–+——+————+
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance                                           | NO           | NO   | NO         |
| InnoDB     | YES     | XtraDB engine based on InnoDB plugin. Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| CSV        | YES     | CSV storage engine                                                                               | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables                                        | NO           | NO   | NO         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                                                            | NO           | NO   | NO         |
+————+———+————————————————————————————————–+————–+——+————+
5 rows in set (0.00 sec)
MariaDB [(none)]>

在下载页面为什么没有Mac的二进制文件?

MariaDB是一个开源项目,能够为我们提供任意平台的二进制文件:

  • 提供一个Mac OSX buildbot slave  ,我们可以构建二进制文件
  • 帮助我们创建恰当的Mac OSX包。
  • 赞助商Sponsor us)为构建提供一台Mac OSX机器

其它资源

编译来自Oracle的InnoDB插件

通常MariaDB附带XtraDB, 来自Oracle一个InnoDB插件增强版。

如果您想使用甲骨文的InnoDB插件,那么您需要编译MariaDB,并在配置时不使用–without-plugin-innodb_plugin该选项。例如,一个简单的没有任何选项./configure会使用它。

当InnoDB插件被编译, 除xtradb之外,innodb_plugin测试套件测试InnoDB插件:

./mysql-test-run –suite=innodb_plugin

使用innodb_plugin代替xtradb您能做 (MariaDB 5.5):

mysqld –ignore-builtin-innodb –plugin-load=innodb=ha_innodb.so

–plugin_dir=/usr/local/mysql/lib/mysql/plugin

MariaDB5.3或更低版本,库名称是ha_innodb_plugin.so

另请参阅

http://dev.mysql.com/doc/refman/5.1/en/replacing-builtin-innodb.html

创建Debian知识库

下面是创建自己的Debian知识库的指令。该指令基于http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html

REPO_DIR={pick some location}
mkdir $REPO_DIR
mkdir $REPO_DIR/binary
mkdir $REPO_DIR/source
cp $PACKAGING_WORK/bakery-{number}/build-temp-{number}/* $REPO_DIR/binary
cd $REPO_DIR
dpkg-scanpackages binary  /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources  source  /dev/null | gzip -9c > source/Sources.gz

使用刚才创建的Debian知识库

有人需要添加一个新文件到/ etc /apt / sources.list.d / 目录。举例来说,一个mariadb.list新文件:

# MariaDB repository for Ubuntu 9.04 “Jaunty Jackalope”.
#
deb file:///home/psergey/testrepo binary/
deb-src file:///home/psergey/testrepo source/

之后,可以运行

apt-get update  # Let apt learn about the new repository
apt-get install mariadb-server

和收集bugs:-)。

“apt – get install“将大量脚本结果和服务输出到/ var / log。还可以设置DEBIAN_SCRIPT_DEBUG = 1来得到一些(不是全部)标准输出。

安装失败后的卸载

运行:dpkg –get-selections | grep mariadb

dpkg –get-selections | grep mysql

看安装什么,可以运行:dpkg –purge

直到前面产生空的输出。注意:在一些失败,/etc / mysql和/ var / lib / mysql不被删除,但仍然需要手动删除。

MariaDB与MySQL共存

您好,

我目前使用MySQL和想测试MariaDB。

我只有一个服务器,并且不希望覆盖当前的MySQL实例。

MySQL和MariaDB有可能在同一环境共处?

我如何定义mysql客户端连接db?通过端口?

多谢!

是的,它是。就像两个MySQL实例可以共存。MariaDB是兼容替代。

通过端口或由不同的套接字路径,和安装MariaDB到一个非标准目录。

这文章在dev.mysql.com详细介绍如何在单个服务器上运行多个MySQL实例。在同一台服务器上运行MySQL和MariaDB该指令也有效。

老的Linux上编译MariaDB

我仍然必须使用MandrakeLinux 10.0 ,在其资料库获得MySQL v.4.0.22。在老的Linux发行版上像MandrakeLinux 10.0(像‘rpmbuild – bb mysql.spec”)有可能构建新MariaDB二进制rpm包(二进制在/usr/bin,数据在/var/lib mysql等)吗?

Answer Answered by byte.

它应该是可能的。这全部依赖于您正使用gcc/glibc版本。我们显然不要在旧平台构建MariaDB,而我们目前甚至没有在Mandrake Linux构建,但是您从规范文件应该能够构建。

然而如果有bug发现,您可能会想在发布台(Launchpad)公布它们,甚至freenode irc漫谈#maria。这bug可能不是非常高的优先级修复。然而,如果有一个商业需要这样做, Monty Program十分乐意去做一些非经常性 (端)工作来获得费用。

包含MariaDB的发行版本

下面发行版本的包资料库包含MariaDB。对于这些可以使用发行版的管理系统安装MariaDB。

Linux 发行版本

   BSD 发行版本

Mac OS X发行版本

运行MariaDB多个副本

有多个MariaDB实例运行在同一台电脑上, 主要的问题您会得到端口和套接字

之间的冲突。

这个问题的解决方案,是在您配置/ .my.cnf文件添加类似这样的:

[client]
# TCP port to use to connect to mysqld server
port=3306
# Socket to use to connect to mysqld server
socket=/tmp/mysql.sock
[mariadb]
# TCP port to make available for clients
port=3306
#  Socket to make available for clients
socket=/tmp/mysql.sock
# Where MariaDB should store all it’s data
data=/usr/local/mysql/data

上面的是默认值。对您的安装改变它们唯一价。

上述应该足以让mysqld来启动和客户喜欢mysql连接到它。其他选项的说明可以在这里找到。

检查mysqld正在使用什么参数值,您能做的: mysqld –print-defaults

列出默认值,检查最后的: mysqld –help –verbose

如果您的问题是, mysqld读取选项从系统文件my . cnf中 (比如/ etc / my . cnf中)您可以让它只读取一个特定的配置文件: mysqld –defaults-file=~/.my.cnf

Oneiric 资源库的问题

在进入Oneiric版本(64位)资源库, 当更新存储库,我得到以下错误消息:

未能获取http://mirror2.hs-esslingen.de/mariadb/repo/5.3/ubuntu/dists/oneiric/main/source/Sources 404未找到。未能获取http://mirror2.hs-esslingen.de/mariadb/repo/5.3/ubuntu/dists/oneiric/main/binary-amd64/Packages 404未找到

我试过几个不同的存储库出现相同的结果。

Answer

现在Ubuntu Oneiric还没有5.3程序包,他们计划在5.3下一个系列的。

第一个oneiric构建项目是为最近发布的MariaDB 5.2.9制成的。那时我们添加oneiric选项到sources.list generator来支持它,但当这一切都完成,它还允许为5.3生成一个列表条目, 然而这不是有效…。为了防止这种情况在未来发生,我们将对sources.list生成器添加检查,以便生成每个组合是有效的。

谢谢

安装MariaDB与MySQL

MariaDB替代(a drop in place replacement for)MySQL,但您也可以安装它与MySQL共处。(这可能很有用,例如,如果您想一个接一个迁移数据库/应用程序。)

在现已安装MySQL坏境,执行以下步骤来安装MariaDB。

  • 下载编译后的二进制文件,其中包含最新的版本(写这篇文章时mariadb-5.5.24-linux-x86_64.targz)和在您所选择的目录中提取文件。我将假设对于本文目录是/ opt。

           [root@mariadb-near-mysql ~]# cat /etc/issue
           CentOS release 6.2 (Final)
           [root@mariadb-near-mysql ~]# rpm -qa mysql*
           mysql-5.1.61-1.el6_2.1.x86_64           
           mysql-libs-5.1.61-1.el6_2.1.x86_64
           mysql-server-5.1.61-1.el6_2.1.x86_64
           [root@mariadb-near-mysql ~]# ps axf | grep mysqld
           2072 pts/0    S+     0:00          _ grep mysqld
           1867 ?        S      0:01 /bin/sh /usr/bin/mysqld_safe –datadir=/var/lib/mysql –socket=/var/lib/mysql/mysql.sock …
           1974 ?        Sl     0:06  _ /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql …

  • 创建数据目录和符号链接:

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

  • 创建mariadb 用户组和mariadb 用户和设置正确所有权:

           [root@mariadb-near-mysql opt]# groupadd –system mariadb
           [root@mariadb-near-mysql opt]# useradd -c “MariaDB Server” -d /opt/mariadb -g mariadb –system mariadb
           [root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-5.5.24-linux-x86_64/
           [root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-data/

  • 在/opt/mariadb用支持文件来创建一个新的my.cnf:

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

  • 编辑 /opt/mariadb-data/my.cnf 和添加客户路径,套接字文件,端口,和最重要的数据目录和基础目录。最后文件应至少有以下几点::

           [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

  • 从支持文件复制初始化脚本到正确的位置:

           [root@mariadb-near-mysql opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb
           [root@mariadb-near-mysql 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文件。在启动mariadb节在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 &

  • 运行 mysql_install_db 通过显式地给它my . cnf中文件作为参数:

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

  • 现在您可以启动MariaDB 通过

           [root@mariadb-near-mysql opt]# /etc/init.d/mariadb start
           Starting MySQL…                                          [  OK  ]

  • 在系统启动时也启动MariaDB 服务:

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

  • 最后的测试您有两个实例运行:

           [root@mariadb-near-mysql ~]# mysql -e “SELECT VERSION();”
           +———–+
           | VERSION() |
           +———–+
           | 5.1.61    |
           +———–+
           [root@mariadb-near-mysql ~]# mysql -e “SELECT VERSION();” –socket=/opt/mariadb-data/mariadb.sock
           +—————-+
           | VERSION()      |
           +—————-+
           | 5.5.24-MariaDB |
           +—————-+

MariaDB 如何升级

通过获得mariadb.socker,,my . cnf文件和在/ opt / mariadb-data数据库,如果您想升级您的MariaDB版本只需要:

  • 从归档提取新版本到当前版本目录/ opt附近中
  • 停止MariaDB
  • 改变mariadb符号连接指向新目录
  • 开启MariaDB

运行升级脚本但记住您需要提供套接字选项–sockert= / opt / mariadb-data / mariadb.sock

 

One thought on “MariaDB中文手册

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>