Corosync 实现 MariaDB 数据库服务的高可用(2)

三、分别在两个节点安装数据库软件:

两个节点使用的数据库软件的版本要求是一致的。因为,两个节点的数据库软件使用的是同一份数据集。由于不同版本的数据库,它的元数据有差异。会造成无法启动数据库服务的。

这里两个节点都使用二进制版本的MariaDB数据库软件。

mariadb-5.5.36-linux-x86_64.tar.gz

1、在 node1(192.168.60.22)安装数据库软件

(1)、在node1挂载并测试NFS服务器导出的文件系统

查看NFS服务器导出的文件系统

[root@node1 ~]# showmount -e 192.168.60.40 Export list for 192.168.60.40: /mydata 192.168.60.0/24

创建挂载点

[root@node1 /]# mkdir mysqldata

挂载NFS寻出的文件系统

[root@node1 /]# mount -t nfs 192.168.60.40:/mydata /mysqldata [root@node1 /]# mount | grep mysqldata 192.168.60.40:/mydata on /mysqldata type nfs (rw,vers=4,addr=192.168.60.40,clientaddr=192.168.60.22)

(2)、安装: MariaDB 数据库

使用的是二进制包安装数据包的方式。

(A)、初始化数据前的准备工作

解压到指定目录下

[root@node1 admin]# tar -xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/ [root@node1 admin]# cd /usr/local/

为了以后维护方便不直接修改目录名称,使用软连接的方式

[root@node1 local]# ln -sv mariadb-5.5.36-linux-x86_64 mysql [root@node1 local]# ll mysql lrwxrwxrwx 1 root root 27 Sep 12 21:23 mysql -> mariadb-5.5.36-linux-x86_64

由于初始化数据库的时候,要以mysql用户的身份运行一些脚本来完成数据库的初始化工作。所以。修改数据库的程序文件的属主为mysql

[root@node1 mysql]# chown -R mysql:mysql ./* [root@node1 mysql]# ll total 212 drwxr-xr-x  2 mysql mysql   4096 Sep 12 21:22 bin -rw-r--r--  1 mysql mysql  17987 Feb 24  2014 COPYING -rw-r--r--  1 mysql mysql  26545 Feb 24  2014 COPYING.LESSER drwxr-xr-x  3 mysql mysql   4096 Sep 12 21:22 data ....

(B)、初始化数据库,指定数据目录的位置和初始化数据库使用的用户

[root@node1 mysql]# ./scripts/mysql_install_db --datadir=/mysqldata/mysql/ --user=mysql Installing MariaDB/MySQL system tables in '/mysqldata/mysql/' ... OK Filling help tables... OK

说明:

从上述可以看出,初始化数据库已经OK!

(3)、为启动 MariaDB 数据库做准备

提供数据库提供配置文件

[root@node1 mysql]# cp support-files/my-large.cnf /etc/my.cnf

由于,修改了数据库的数据目录,所以要在配置文件中指定数据库的数据目录

[root@node1 mysql]# vim /etc/my.cnf thread_concurrency = 2 datadir = /mysqldata/mysql/

提供LSB风格的启动脚本,管理 MariaDB 的启动、停止、重启、重新加裁配置文件等操作

[root@node1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@node1 mysql]# ll /etc/init.d/mysqld -rwxr--r-- 1 root root 11844 Sep 12 21:39 /etc/init.d/mysqld

为了安全考虑把数据库的程序目录的属主修改为:root

[root@node1 mysql]# chown -R root:mysql ./* [root@node1 mysql]# ll total 212 drwxr-xr-x  2 root mysql   4096 Sep 12 21:22 bin -rw-r--r--  1 root mysql  17987 Feb 24  2014 COPYING -rw-r--r--  1 root mysql  26545 Feb 24  2014 COPYING.LESSER drwxr-xr-x  3 root mysql   4096 Sep 12 21:22 data drwxr-xr-x  2 root mysql   4096 Sep 12 21:23 docs drwxr-xr-x  3 root mysql   4096 Sep 12 21:23 include -rw-r--r--  1 root mysql   8694 Feb 24  2014 INSTALL-BINAR ......

(4)、启动MariaDB数据库并测试

启动 MariaDB 数据库

[root@node1 mysql]# service mysqld start Staring mysqld [ OK ]

连接测试数据库

[root@node1 mysql]# mysql Welcome to the MariaDB monitor.  Commands end with ; or \g. Your MariaDB connection id is 3 ...... MariaDB [(none)]> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | performance_schema | | test               | +--------------------+ 4 rows in set (0.01 sec)

测试在该节点是否能够创建数据库和删除数据库,来检测mysql用户是否有NFS共享文件系统的读写权限的。

创建数据库

MariaDB [(none)]> create database testdb; Query OK, 1 row affected (0.03 sec)

删除数据库

MariaDB [(none)]> drop database testdb; Query OK, 0 rows affected (0.00 sec)

说明:

在node1节点数据库已经安装成功!

(5)、配置成HA高可用服务的资源不能让它开机自动启动

停止node1节点的数据库服务

[root@node1 mysql]# service mysqld stop Shutting down MySQL..                                      [  OK  ]

卸载nfs文件系统

[root@node1 mysql]# umount /mysqldata/

由于是提供数据库的高可用的,是不允许开机自动启用数据库服务的。保证开机不会自动启用高可用服务

[root@node1 ~]# chkconfig mysqld off [root@node1 ~]# chkconfig --list mysqld mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

2、在node2(192.168.60.128)节点安装数据库

(1)、在node1挂载并测试NFS服务器导出的文件系统

创建挂载点

[root@node2 /]# mkdir mysqldata

查看NFS服务器导出的共享文件系统

[root@node2 /]# showmount -e 192.168.60.40 Export list for 192.168.60.40: /mydata 192.168.60.0/24

挂载NFS服务器导出的共享文件系统

root@node2 /]# mount -t nfs 192.168.60.40:/mydata /mysqldata/

查看是否挂载成功

[root@node2 /]# mount | grep "\/mysqldata" 192.168.60.40:/mydata on /mysqldata type nfs (rw,vers=4,addr=192.168.60.40,clientaddr=192.168.60.128)

(2)、安装: MariaDB 数据库

解压到指定目录下

[root@node2 admin]# tar  -xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/

为了日后操作维护方便,不直接修改目标名称,给该目录创建一个软链接

[root@node2 admin]# cd /usr/local/ [root@node2 local]# ln -sv mariadb-5.5.36-linux-x86_64 mysql `mysql' -> `mariadb-5.5.36-linux-x86_64' [root@node2 local]# ll mysql lrwxrwxrwx 1 root root 27 Sep 12 22:27 mysql -> mariadb-5.5.36-linux-x86_64

由于在node1节点已经初始化过数据库了,该节点无需再次初始化数据库了。

修改数据库程序的属主属组为:root:mysql

[root@node2 mysql]# chown -R root:mysql ./* [root@node2 mysql]# ll total 212 drwxr-xr-x  2 root mysql   4096 Sep 12 21:53 bin -rw-r--r--  1 root mysql  17987 Jul 22  2013 COPYING -rw-r--r--  1 root mysql  26545 Jul 22  2013 COPYING.LESSER drwxr-xr-x  3 root mysql   4096 Sep 12 21:53 data drwxr-xr-x  2 root mysql   4096 Sep 12 21:53 docs drwxr-xr-x  3 root mysql   4096 Sep 12 21:53 include

(3)、为启动服务库服务准备条件; 

为了保证两个节点的数据库的配置一样,从node1节点分别拷贝:配置文件和启动脚本 到node2节点

[root@node1 mysql]# scp  /etc/my.cnf node2:/etc/ my.cnf                                        100% 4929     4.8KB/s   00:00 [root@node1 mysql]# scp -p /etc/init.d/mysqld node2:/etc/init.d/ mysqld                                        100%   12KB  11.6KB/s   00:00

(4)、启动 MariDB 数据库并测试

启动数据库服务

[root@node2 mysql]# service mysqld start Starting MySQL...                                          [  OK  ]

连接数据库

[root@node2 mysql]# mysql Welcome to the MariaDB monitor.  Commands end with ; or \g. ...... Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | performance_schema | | test               | +--------------------+ 4 rows in set (0.06 sec)

说明:

可以连接数据库

测试在该节点是否能够创建数据库和删除数据库,来检测mysql用户是否有NFS共享文件系统的读写权限的。

创建数据库

MariaDB [(none)]> create database testdb; Query OK, 1 row affected (0.03 sec)

删除数据库

MariaDB [(none)]> drop database testdb; Query OK, 0 rows affected (0.03 sec)

说明:

从上述操作及结果可以得出结论。在node2节点可以正常操作数据库。

(5)、做数据库服务做一些初始化工作;

由于安装数据库的时候会默认添加了一些用户且是没有密码,按照实际情况删除不需要的用户

给保留的用户设置密码,为了管理数据库方便是,设置远程管理数据库的用户。

删除数据库一些默认添加的的用户

MariaDB [(none)]> drop user 'root'@'node1.linuxidc.com'; MariaDB [(none)]> drop user 'root'@'::1'; MariaDB [(none)]> drop user ''@'localhost'; MariaDB [(none)]> drop user ''@'node1.linuxidc.com'; Query OK, 0 rows affected (0.00 sec)

给保留的用户添加密码

MariaDB [(none)]> set password for 'root'@'localhost' = password('root'); Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> set password for 'root'@'127.0.0.1' = password('root'); Query OK, 0 rows affected (0.00 sec)

添加能够远程管理数据库的用户

MariaDB [(none)]> grant all on *.* to 'admin'@'%.%.%.%' identified by 'admin'; Query OK, 0 rows affected (0.00 sec)

修改后的 MariaDB数据库的用户如下:

MariaDB [(none)]> select user,host,password from mysql.user; +-------+-----------+-------------------------------------------+ | user  | host      | password                                  | +-------+-----------+-------------------------------------------+ | root  | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | root  | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | admin | %.%.%.%   | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | +-------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)

刷新授权表

MariaDB [(none)]> flush  privileges; Query OK, 0 rows affected (0.01 sec)

(6)、配置成HA高可用服务的资源不能让它开机自动启动

停止数据库服务

[root@node2 mysql]# service mysqld stop Shutting down MySQL.                                       [  OK  ]

卸载挂载的NFS文件系统

[root@node2 mysql]# umount /mysqldata/

设置不能开机启动数据库服务

[root@node2 mysql]# chkconfig mysqld off [root@node2 mysql]# chkconfig --list  mysqld mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6d815a62c126d9f20333850bf9dee8c9.html