本文在centos7.x系统中安装mariadb数据库
一:源码编译安装mariadb
1:安装环境依赖的包,如下图
[root@molson ~]# yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel -y
2:准备用户和数据存放目录,如下
[root@molson ~]# useradd -r -s /sbin/nologin -d /data/mysql/ mysql [root@molson ~]# mkdir -pv /data/mysql mkdir: 已创建目录 "/data" mkdir: 已创建目录 "/data/mysql" [root@molson ~]# chown mysql.mysql /data/mysql -R
3:上传源码包寄解压源文件并进入源码包目录,如下
[root@molson src]# ll 总用量 70232 -rw-r--r--. 1 root root 71914588 4月 1 22:00 mariadb-10.2.23.tar.gz [root@molson src]# tar xf mariadb-10.2.23.tar.gz [root@molson src]# ll 总用量 70236 drwxrwxr-x. 33 1001 1001 4096 3月 24 2019 mariadb-10.2.23 -rw-r--r--. 1 root root 71914588 4月 1 22:00 mariadb-10.2.23.tar.gz [root@molson src]# cd mariadb-10.2.23 [root@molson mariadb-10.2.23]#
4:Cmake编译安装,如下图
[root@molson mariadb-10.2.23]# cmake -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc/ -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITHOUT_TOKUDB=1
CMake编译完成,如下图
再执行make && make install 指令完成编译,如下:
[root@molson mariadb-10.2.23]# make && make install
5:配置环境变量并生效,如下
[root@molson mariadb-10.2.23]# echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@molson mariadb-10.2.23]# . /etc/profile.d/mysql.sh
6:生成数据库文件,如下
[root@molson ~]# cd /app/mysql [root@molson mysql]# scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql Installing MariaDB/MySQL system tables in '/data/mysql/' ... OK 。。。 。。。 。。。 The latest information about MariaDB is available at http://mariadb.org/. You can find additional information about the MySQL part at: http://dev.mysql.com Consider joining MariaDB's strong and vibrant community: https://mariadb.org/get-involved/
7:准备配置文件,如下
[root@molson mysql]# cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
8:准备启动脚本,如下
[root@molson ~]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
9:启动数据库,如下
[root@molson ~]# chkconfig --add mysqld [root@molson ~]# service mysqld start Starting mysqld (via systemctl): [ 确定 ]
10:登录并验证数据库,如下
由此上图可知,源码编译的mariadb数据库安装成功!
二:二进制安装mariadb数据库
1:准备用户,如下
[root@molson ~]# groupadd -r -g 306 mysql [root@molson ~]# useradd -r -g 306 -u 306 –d /data/mysql mysql
2:准备数据目录,如下
[root@molson ~]# mkdir /data/mysql -p [root@molson ~]# chown mysql:mysql /data/mysql
3:上传二进制程序并放入到/usr/local目录中并解压,创建软连接并授权,如下
[root@molson local]# tar xf mariadb-10.2.23-linux-x86_64.tar.gz [root@molson local]# ln -sv mariadb-10.2.23-linux-x86_64 mysql "mysql" -> "mariadb-10.2.23-linux-x86_64" [root@molson local]# chown -R root:mysql /usr/local/mysql/
4:准备配置文件,如下
[root@molson local]# mkdir /etc/mysql [root@molson mysql]# cp support-files/my-large.cnf /etc/mysql/my.cfg
并在/etc/mysql/my.cfg配置文件中添加如下内容,如下
[mysqld]中添加三个选项: datadir= /data/mysql innodb_file_per_table= on skip_name_resolve= on 禁止主机名解析,建议使用
如下图:
5:创建数据库文件,如下
[root@molson mysql]# cd /usr/local/mysql/ [root@molson mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
6:准备服务脚本并启动,如下
[root@molson mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld [root@molson mysql]# chkconfig --add mysqld
[root@molson init.d]# service mysqld start
注意:在这步启动的过程中很容易出错的,见如下报错的图片
上图为服务启动失败
上图为查看启动失败的原因,
综上错误的原因及分析启动脚本,其中一个是mysql的配置文件没有设置启动用户为mysql,另外一个就是Mysql启动脚本的大坑,我参照mysql5.5中的wait_for_ready ()进行更改,启动服务成功,见下图
修改后,执行systemctl daemon-reload命令,再重启服务,启动成功,如下图
7:添加环境变量,如下
[root@molson mysql]# echo ‘PATH=/user/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh
8:安全初始化,如下
[root@molson mysql]# /usr/local/mysql/bin/mysql_secure_installation
注意:执行上述安全初始化的时候,有时候会报错的,如下图
主要原因就是把socker的文件放在/tmp/mysql.sock目录中了,这是centos系统默认的,更改到socket = /var/lib/mysql/mysql.sock就可以,如下:
socket = /var/lib/mysql/mysql.sock
至此,二进制mariadb服务安装成功
这个点了,可以准备睡觉了----00:19:31