开发者学堂课程【Linux MySQL 服务器搭建与应用:MariaDB 的二进制安装和实战】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/578/detail/7984
MariaDB 的二进制安装和实战
内容介绍:
一、 YUM 源安装:MariaDB 10.2.15 Series
二、 通用二进制格式安装过程
三、 配置用户的数据库
四、 初始化数据库
五、 关于 mariadb 的配置文件
六、 自动启动 mysqld
七、 安全初始化
八、 注意事项
一、 YUM 源安装:MariaDB 10.2.15 Series
MariaDB 10.2是 MariaDB 的稳定版本。
它建立在 MariaDB 10.1之上,具有 MySQL 5.6 和5.7的功能,以及在其他任何地方都找不到的全新功能。
MariaDB 10.2 基本上等价于 MySQL 5.7 的版本功能。点击下载会显示原码、二进制和包的三种形式的安装方法。
表中显示 debian and Ubuntu Packages 使用 DEB Package,CentOS 系列和红帽系列使用 RPM Package 这种包。点击 Repository Configuration Tool 即仓库的配置工具,这里可以直接知道仓库路径。
按顺序选择 CentOS -> CentOS 6(x86_64) -> 10.2[Stable],就会直接显示 YUM 源:
#http: //downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl=http:/ /yum.mariadb.org/10.2/ centos7-amd64
gpgkey=https:// yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
修改仓库配置文件:vim/etc/yum.repos.d/base.repo 加入网页中所给到的 YUM 源代码:
[mariadb]
name = MariaDB
baseurl=http:/ /yum.mariadb.org/10.2/ centos7-amd64
gpgkey=https:// yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
查看 resolv 文件:
cat/etc/resolv.conf
# Generated by NetworkManager
search magedu.com localdomain
nameserver 223.5.5.5
nameserver 223.6.6.6
连接 MariaDB 数据库的仓库: yum repolist
二、 通用二进制格式安装过程
二进制格式安装过程。把编译过程省掉了,官方直接帮你编译好,如果使用源码安装,可能对一些参数的调正不如官方直接帮你编译好的二进制来的方便。
1. 检查环境
确保没有同类型软件
rpm -q mariadb-server
package mariadb-server is not installed
rpm -q mysql-server
package mysql-server is not installed
2. 下载二进制包
此时我们时在 centos7.4 安装
mariadb-10.2.15-linux-x86_64.tar. gz。
安装包版本后面带上了 linux,这意味着这是适用于 linux 的二进制包,如果不带linux 或者其他系统的标识,表示这是一个源码包,源码包的大小很小。
3. 准备用户账号
官方编译时,默认指定了运行数据库程序的用户为:mysql 我们需要为其提供同名账户。
mariadb 的程序存放路径
官方编译时,指定了安装存放的路径为:/usr/local/mysql,可以把 tar 包解压缩到 /usr/local 下改名为 mysql,不过更通用的做法就是做一个软连接。
[root@centos7~]#useradd-r-d/data/mysq1db-s /sbin/no1ogin mysq
[root@centos7~]#getent passwd mysql
mysq1l:x:990:985::/data/mysq1db:/sbin/nologin
[root@centos7.~]#id mysq1
uid=990(mysq1) gid=985(mysq1) groups=985(mysq1)
4. 解压缩:
创建安装路径:
指定数据库存放的路径,将发行版解压缩到您选择的目录中并运行脚本,放置二进制编译完成的程序。
在目录中安装了 MariaDB(这是 MariaDB 在许多平台上的默认位置)。但是,任何其他目录也应该可以工作。
/usr/local/mysql
安装带有指向原始名称的符号链接的二进制文件。这样做是只需移动符号链接指向另一个目录,就可以轻松地更改 MariaDB 版本。
[root@node1 ~]#tar -xvf
mariadb-10.2.15-linux-x86_64.tar. gz
-C /usr/local
进入到 usr/local 下会有一个解压缩目录,但这和目录是不符合条件的
5. 生成一个软连接
[root@node1 ~]#cd /usr/local
[root@node1 local]# ln -s
mariadb-10.2.15-linux-x86_64.tar. gz / mysql
会发现所有者很多都是500,就需要改变所有者。
6. 更改数据库的主属组为 root
[root@node1 local]# chown -R root:mysql
7. 更新 PATH 路径
[root@node1 local]#echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
此时配置文件就定义好了,便可以进一步做其他此操作
三、 配置用户的数据库
1. 创建磁盘
尽可能放到大的空间磁盘里
echo ‘- - -’ > /sys/class/scsi_host/host2/scan
2. 创建物理卷
pvcreate/dev/sdb
3. 创建逻辑卷
创建和物理卷一样大小的逻辑卷
[root@centos7 local]#lvcreate-lv_mysq1 -7 100%FREEvgo
4. 创建文件系统
mkfs.xfs /dev/vg0/lv_mysql
mkdir /data/mysql
getent passwd mysql
chown mysq1.mysql / data/mysqldb
ll -d /data/mysqldb
chmod 770 /data/mysqldb
此时用户的数据库就配置好了。
四、 初始化数据库
在数据库正式使用前,我们应当先初始化一下数据库,这操作会生成几个初始化的数据库。
假如以 /data/mysql 作为数据库存放数据的地方
[root@node1 local]# mkdir /data/mysql -p
官方编译的时候,是使用 mysql 用户来运行数据库,所以,存放数据目录的地方,mysql 用户必须具有读写权限,在这里,直接把属组属主改成 mysql
[root@node1 local]# chown mysql.mysql /data/mysql -R
进入到 mysql 目录
[root@node1 mysql]# cd /usr/local/mysql/
执行此命令,另外提供2个参数运行用户和基本目录:
[root@node1 mysql]#./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
Installing MariaDB/MySQL system tables in '/data/mysql' ...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your syste...
注意:
--basedir= 是 mysql 程序的位置
--datadir= 是打算让数据存放的位置
初始化完成以后,查看 ls /data/mysql/ 能查看到初始化以后的数据库。
五、 关于 mariadb 的配置文件
在官方配置好的 mariadb 读取配置文件有顺序之分。
读取顺序:
/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf
前2个 /etc/my.cnf 后者 /etc/mysql/my.cnf 比较常用,另外一种常用的配置就是在启动 mysql 时,给它指定好配置文件。
另外需要注意的是,有可能你的旧配置文件 /etc/my.cnf 存在,这样可能会影响到数据库的配置,此时需要保证该配置文件的配置有效性。
[mysqld]
datadir=/data/mysql //
配置数据库路径
socket=/user/local/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in
http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/data/mysql/log/mariadb.log
pid-file=/data/mysql/pid/mariadb.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
根据此配置文件,我还需要在 /data/mysql 下创建2个目录,用于保存日志和 pid文件
[root@node1 mysql]# mkdir /data/mysql/{log,pid}
[root@node1 mysql]# chown mysql.mysql -R /data/mysql
六、 自动启动 mysqld
初始化和配置都完成以后,接下来可以启动 mariadb 了,在官方的二进制包种,带上了 systemd 的启动脚本。
ls /usr/local/mysql/support-files/systemd/
mariadb.service
mariadb@.service
use_galera_new_cluster.conf
#复制 systemd 配置文件
[root@node1 mysql]# cp support-files/systemd/mariadb.service /lib/systemd/system/
#重新加载配置 systemd
[root@node1 mysql]# systemctl reload
#
启动mariadb
[root@node1 mysql]# systemctl start mariadb
您可以通过将文件文件复制到正确的位置来使 mysqld(MariaDB 服务器)自动启动。
mysql.server
cp support-files/mysql.server /etc/init.d/mysql.server
确切的位置取决于您的系统。该文件包含有关如何使用和微调它的说明。mysql.server
对于 systemd 安装
需要将 mariadb.service 文件从 support-files/systemd 文件夹复制到 /usr/lib/systemd/system/ 文件夹中。
cp support-files/systemd/mariadb.service
/usr/lib/systemd/system/mariadb.service
请注意,默认情况下,/usr/ 目录受 systemd 的写保护,因此,当按照上述说明将数据目录放在 /usr/local/mysql/data 中时,您还需要使该目录可写。
您可以通过添加额外的服务包含文件来执行此操作:
mkdir /etc/systemd/system/mariadb.service.d/
cat > /etc/systemd/system/mariadb.service.d/datadir.conf <
[Service]
ReadWritePaths=/usr/local/mysql/data
EOF
systemclt daemon-reload
在此之后,您可以使用
systenctl start mariadb.service
和
systemctl stop mariadb.service
七、 安全初始化
数据库默认安装后
MariaDB [mysql]> select user,host from mysql.user;
| user | host
| root | 127.0.0.1
| root | ::1
| centos7.qifei.com
| root | centos7.qifei.com
| localhost
| root | localhost
6 rows in set (0.00 sec)
MariaDB [mysql]> select user,host password from mysql.user
| user | password
| root | 127.0.0.1
| root | ::1
centos7.qifei.
| root | centos7.qifei.
| localhost
| root | localhost
6 rows in set (0.00 sec)
跑脚本
[root@centos7 ~]#mysql_secure_installation
(安全初始化)
请输入 root 口令,你没有直接回车
Enter current password for root (enter for none):
是否设置 root 口令
Set root password? [Y/n] y
New password:
Re-enter new password:
是否删除匿名账户
Remove anonymous users? [Y/n] y
是否禁用 root 用户远程连接
Disallow root login remotely? [Y/n] n
是否删除 test 测试文件
Remove test database and access to it? [Y/n] y
是否生效保存
Reload privilege tables now? [Y/n] y
八、 注意事项
[fei@centos7 ~]$mysql -uroot -p 普通用户用 root 登录
Enter password:
MariaDB [(none)]> system cat /etc/passwd //
能打开所有文件 并且能修改 root 密码
root:x:0:0:root:/root:/bin/bash