NO.A.0004——mysql/mariadb——make installation/configuration

1. Download the source code package:
1. Address: https://downloads.mariadb.org/mariadb/10.2.35/ select the version you want to install;
Insert picture description here

Download the source package: mariadb-10.2.35.tar.gz package // The source package is about 73.9mb smaller than the binary package
2. Installation environment:
mariadb version: 10.2.35
Centos version: centos7.6.1810
Official tip: Don’t be in a production environment Use the beta and alpha versions of the database; their main functions are generally used for testing and troubleshooting, unstable, we choose the stable database of the 10.2.35 series

2. Source code compile and install mariadb (the official recommendation is to use cmake to compile and install)
1. Source code compile and install the stable version database of mariadb10.2.35:

//1、安装相关的软件依赖包:
[root@localhost ~]# yum install -y 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
Installed:
  bison.x86_64 0:3.0.4-2.el7         bison-devel.x86_64 0:3.0.4-2.el7   
  boost-devel.x86_64 0:1.53.0-28.el7         cmake.x86_64 0:2.8.12.2-2.el7   
  gcc.x86_64 0:4.8.5-39.el7                  gcc-c++.x86_64 0:4.8.5-39.el7      
  gnutls-devel.x86_64 0:3.3.29-9.el7_6       libaio-devel.x86_64 0:0.3.109-13.el7   
  libarchive-devel.x86_64 0:3.1.2-14.el7_7   libcurl-devel.x86_64 0:7.29.0-57.el7_8.1 
  libevent-devel.x86_64 0:2.0.21-4.el7       libxml2-devel.x86_64 0:2.9.1-6.el7.4 
  ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 openssl-devel.x86_64 1:1.0.2k-19.el7
  zlib-devel.x86_64 0:1.2.7-18.el7 
 //2、准备用户和数据的存放目录
[root@localhost ~]# useradd -r -s /sbin/nologin mysql     //创建mysql用户     
[root@localhost ~]# mkdir -pv /data/mysqldb             //创建数据存放目录
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/mysqldb’
[root@localhost ~]# chown mysql.mysql /data/mysqldb  //把mysqldb目录的所有者,改为mysql
[root@localhost ~]# ll /data/
drwxr-xr-x 2 mysql mysql 6 Nov  7 17:07 mysqldb

2. Unzip and execute cmake

//3、解压、编译源码包;
[root@localhost ~]# tar -zxvf mariadb-10.2.35.tar.gz
[root@localhost ~]# cd mariadb-10.2.35/

[root@localhost mariadb-10.2.35]#cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \         //mysql安装程序的目录
-DMYSQL_DATADIR=/data/mysqldb/ \            //数据库数据存放目录
-DSYSCONFDIR=/etc \                         //指定配置文件所在目录
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \   //指定soket文件目录;默认情况下是在/tmp/mysql.sock
                                            //自定义目录后需要给该目录授予mysql用户读写执行权限
//执行如果出错,执行rm -f CMakeCache.txt文件

[root@localhost mariadb-10.2.35]# make  && make install 
[root@localhost mariadb-10.2.35]# make -j 4 && make install  
//-j4 与m-j8的意思就是多线程运行,
(线程的意思请参考操作系统)即4个进程去竞争多核cpu,或者8个线程去竞争cpu

3. CMake standard files

cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysqldb/ \
-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=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

4. Environment variables and startup script configuration:

//4、准备环境变量:
[root@localhost ~]# echo PATH=/app/mysql/bin:$PATH > /etc/profile.d/mysql.sh
[root@localhost ~]# . /etc/profile.d/mysql.sh 

//5、生成数据库文件w
[root@localhost mariadb-10.2.35]# cd /app/mysql/
[root@localhost mysql]# scripts/mysql_install_db --datadir=/data/mysqldb/ --user=mysql  
    --basedir=/app/mysql                //执行之前确定mysql用户创建完成
ok

//6、准备配置文件:
[root@localhost mysql]# cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@localhost mysql]# vim /etc/my.cnf
socket          = /app/mysql/mysql.sock                 //指定sock文件地址

//7、准备自启动脚本:
[root@localhost mysql]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

5. Start the service:

//8、启动服务:
[root@localhost mysql]# chkconfig --add mysqld;service mysqld start
[root@localhost mysql]# systemctl  start  mysqld.service 
Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process 
exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" 
for details.
                                                           [FAILED]

//解决思路:查看日志:
[root@localhost mysqldb]# cat /data/mysqldb/localhost.localdomain.err 
                                        //查看日志报错;/app/mysql目录没有为用户mysql设置权限;
[ERROR] Can't start server : Bind on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /app/mysql/mysql.sock ?  
                                        //启动服务时会报错:因为没有读写权限:

//解决方案:
[root@localhost ~]# setfacl -R -m u:mysql:rwx /app/mysql/  
                                            //为/app/mysql目录设置mysql用户具有读写权限

[root@localhost mysqldb]# systemctl restart mysqld.service 

[root@localhost mysqldb]# mysql
Server version: 10.2.35-MariaDB-log
MariaDB [(none)]> show variables like "basedir";
+---------------+------------+
| Variable_name | Value      |
+---------------+------------+
| basedir       | /app/mysql |

//9、设置开机自启动
[root@localhost ~]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chkconfig --add mysqld
[root@localhost ~]# chkconfig --list
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

6. Set the root account password

//10、为mysql数据库程序设置root账号口令:
[root@localhost ~]# mysql_secure_installation 

Guess you like

Origin blog.51cto.com/15005403/2552279