MySQL High Availability总结(一)源码安装MariaDB

来源:互联网 发布:淘宝开店引流必备软件 编辑:程序博客网 时间:2024/04/28 07:20

MySQL High Availability总结
最近在研究MySQL High Availability(高可用性),参考书籍:MySQL High Availability,京东地址:http://item.jd.com/11687044.html。这本书原版非常不错,中国翻译版在豆瓣评论很差,我购买的就是英文原版的。
MySQL Replaction(复制)的作用:负载均衡以及分布式、数据容灾备份、数据分析和数据挖掘、读写分离。本片总结采用的是MySQL数据库的分支MariaDB,下载地址:https://downloads.mariadb.org/。测试环境:CentOS7、MariaDB5.5.45下载地址:https://downloads.mariadb.org/mariadb/5.5.45/、zshell5.0.2。
一、 安装mariadb
1、下载MariaDB5.5.45:mariadb-5.5.45.tar.gz;
2、执行tar zxvf mariadb-5.545.tar.gz解压MariaDB;
这里写图片描述
这里写图片描述
3、由于MariaDB下载后都是源码的,所以需要进行编译安装。在安装之前需要安装cmake和libaio依赖包(cmake用于配置编译源码的选项,其实内部调用make,libaio为非阻塞式IO工具库),执行sudo yum install cmake libaio-devel;
这里写图片描述
这里写图片描述
4、执行cmake命令生成用于编译源码的配置文件,在执行时需要指定一些参数:
cmake .
-DCMAKE_INSTALL_PREFIX=/srv/mariadb -DMYSQL_DATADIR=/data/mysql/mariadb -DSYSCONFDIR=/data/config/mariadb_config
参数说明:
. 为在当前路径下执行,cmake会寻找当前目录下的CMakeLists.txt文件,根据CMakeLists.txt中编写的配置选项以及-D参数指出的选项进行配置,配置的主要作用就是生成configure文件,make命令会根据configure文件中设置的参数,然后调用gcc编译器进行编译。
-DCMAKE_INSTALL_PREFIX 安装前缀,相当于base dir,MariaDB会安装到这个路径中,并且大部分相对路径也是基于这里。
-DMYSQL_DATADIR MariaDB的数据存储路径,建议把数据库的系统文件和数据文件分开存放,并且严格控制这两个路径的权限。
-DSYSCONFDIR MariaDB的配置文件存放路径。
执行后需要等待cmake对指定的配置进行校验以及更新,更新完成后会出现下图的提示。
这里写图片描述
在执行cmake命令后会在当前目录生成CMakeCache.txt文件,这个文件的作用就是保存临时生成的配置文件模板和选项,Makefile文件也是根据这个模板生成的;
5、执行make命令,make命令是在真正的进行源码编译,所以编译时间很长,需要静静的等待~
这里写图片描述
完成后可以看到如下图所示,通常不会出现什么异常。出现异常可以自行参考百度或MariaDB的官方文档,也可以发送邮件给我:kid.2412@qq.com,也可以登录我的网站http://www.geapi.cn给我留言。
这里写图片描述
6、执行sudo make install 命令,安装编译完成后的MariaDB,由于这里我指定的安装路径为/srv,所以需要root权限。安装速度就没有编译速度与那么慢啦~
这里写图片描述
7、MariaDB和MySQL的配置文件是相同的。在MariaDB第一次安装完成后会在/etc下生成一个默认的配置文件my.cnf,初始化的配置文件中对服务器的配置比较少。所以大多都是删除掉,然后在cmake时指定的DSYSCONFDIR参数中配置的路径创建自己的配置文件,对配置文件进行针对性的配置。这里我提供一份已经配置好的配置文件:http://www.jb51.net/article/48082.htm(来自于网络,有详细的配置说明)。
8、在编辑完配置文件后,需要对MariaDB进行初始化。如果不初始化的话是无法正确启动服务的。初始化包括了对mysql、information_schema、performance_schema的,这些库保存了MariaDB或MySQL最基本的配置信息、schmea等。初始化脚本在MariaDB安装路径下的scripts文件夹中,脚本名:mysql_install_db。
这里写图片描述
执行./mysql_install_db
–basedir=/srv/mariadb –datadir=/data/mysql/mariadb –user=mysql进行初始化。
参数说明:–basedir 数据库系统文件的路径,也就是数据库的安装路径
–datadir 数据库数据文件存放路径
–user 启动服务进程的用户,一般创建一个系统用户(uid<999&gid<999&nologin)作为启动服务进程的用户,然后使用sudo启动服务,linux会把sudo权限下放到指定的用户。
这里写图片描述
9、启动MariaDB服务,执行sudo /srv/mariadb/bin/mysqld_safe –-defaults-file=/data/config/my_3306.cnf &
需要注意的是MariaDB启动的脚本和方式其实有好几种,不过官方推荐mysqld_safe,其实也可以使用mysqld启动,但mysqld_safe在mysqld基础之上增加了一些安全性的配置,并且对日志控制的非常好。
参数说明:–defaults-file 默认的配置文件路径
& 为后台运行,由于mysqld_safe本身处理了nohup屏蔽了中断信号,所以不用再加入nohup调用了。
这里写图片描述
10、初始化数据库并且启动服务以后需要对root用户修改密码,默认是没有密码的,这及其的不安全。根据上面的提示也可以看出,MariaDB在初始化数据库以后也要求修改root密码,通过执行mysqladmin –u root password ‘新密码’这个命令。注意:如果你的数据库服务的端口不是默认的3306,并且sock文件也不是默认在/var/run/mysqld/mysqld.sock下,需要通过-S参数指定sock文件,即:mysqladmin –u root password ‘新密码’ –S sock文件的路径。
这里写图片描述
最后说明一下关闭MariaDB服务,执行
sudo /srv/mariadb/bin/mysqladmin shutdown –u root –p –S /data/var/mariadb/mariadb_3306.sock
mysqladmin是管理MariaDB的一个内置命令,可以用于重置root用户密码、停止、重启服务等操作。
参数说明:shutdown 为关闭服务 -u指定数据库的管理用户 -p指定用户密码 -S指定socket文件
执行命令以后需要输入root用户的密码。
这里写图片描述

0 0