十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
centos 7下mariadb-10.1.22 源码编译安装过程笔记,希望对大家有帮助。

下载文件https://mariadb.com/
1.安装开发环境
yum groupinstall "Development Tools"
安装需要包:
yum install -y ncurses-devel openssl-devel openssl
2.安装cmake
tar -xf cmake-3.8.0.tar.gz 
cd cmake-3.8.0
./bootstrap 
make 
make install
3.安装前准备
3.1.准备目录
mkdir -pv /data/mysql/3306/{data,logs/{binlog,relaylog}}
3.2.添加用户
groupadd mysql 
useradd -s /sbin/nologin -g mysql -M mysql 
chown mysql:mysql /data/mysql/3306/ -R
4.编译安装
# tar -xf mariadb-10.1.22.tar.gz  
# cd mariadb-10.1.22 
# cmake \ 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 
-DMYSQL_DATADIR=/data/mysql/3306/data \ 
-DSYSCONFDIR=/etc \ 
-DMYSQL_USER=mysql \ 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 
-DWITH_READLINE=1 \ 
-DWITH_SSL=system \ 
-DWITH_ZLIB=system \ 
-DWITH_LIBWRAP=0 \ 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 
-DDEFAULT_CHARSET=utf8 \ 
-DDEFAULT_COLLATION=utf8_general_ci \ 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 
-DENABLED_LOCAL_INFILE=1 \ 
-DWITH_PARTITION_STORAGE_ENGINE=1  \ 
-DWITH_DEBUG=0 \ 
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 
# make 
# make install
5.安装完环境准备
# chmod +w /usr/local/mysql/ 
# chown -R mysql:mysql /usr/local/mysql/
6.拷贝配置文件并修改
# cp support-files/my-large.cnf /etc/my.cnf
# vim /etc/my.cnf
增加如下:
datadir = /data/mysql/3306/data 
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = ON 
skip_name_resolve = ON
查看配置文件:
vim /etc/my.cnf 
[client] 
port            = 3306
socket          = /tmp/mysql.sock 
  
[mysqld] 
port            = 3306
socket          = /tmp/mysql.sock 
skip-external-locking 
key_buffer_size = 256M 
max_allowed_packet = 1M 
table_open_cache = 256
sort_buffer_size = 1M 
read_buffer_size = 1M 
read_rnd_buffer_size = 4M 
myisam_sort_buffer_size = 64M 
thread_cache_size = 8
query_cache_size= 16M 
thread_concurrency = 8
  
log-bin=mysql-bin 
binlog_format=mixed 
server-id      = 1
datadir = /data/mysql/3306/data 
innodb_data_home_dir = /data/mysql/3306/data 
innodb_data_file_path = ibdata1:10M:autoextend 
innodb_log_group_home_dir = /data/mysql/3306/data 
innodb_buffer_pool_size = 256M 
innodb_additional_mem_pool_size = 20M 
innodb_log_file_size = 64M 
innodb_log_buffer_size = 8M 
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_file_per_table = ON 
skip_name_resolve = ON 
  
[mysqldump] 
quick 
max_allowed_packet = 16M 
  
[mysql] 
no-auto-rehash 
  
[myisamchk] 
key_buffer_size = 128M 
sort_buffer_size = 128M 
read_buffer = 2M 
write_buffer = 2M 
  
[mysqlhotcopy] 
interactive-timeout
7.初始化mysql
# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/3306/data/ --defaults-file=/etc/my.cnf
查看初始化结果:
# ls /data/mysql/3306/data/ 
aria_log.00000001  ibdata1      ib_logfile1  mysql-bin.000001  mysql-bin.000003  mysql-bin.state    test 
aria_log_control  ib_logfile0  mysql        mysql-bin.000002  mysql-bin.index  performance_schema
8.启动服务
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
# chmod +x /etc/rc.d/init.d/mysqld  
# chkconfig --add mysqld 
# service mysqld start
9.添加环境变量
# vim /etc/profile 
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
重读环境变量
source /etc/profile
10.初始化数据库用户表
# mysql 
Welcome to the MariaDB monitor.  Commands end with ; or \g. 
Your MariaDB connection id is 4
Server version: 10.1.22-MariaDB Source distribution 
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 
MariaDB [(none)]> use mysql 
Database changed 
MariaDB [mysql]> delete from user where host='localhost.localdomain' or host='127.0.0.1' or host='::1' or user=''; 
Query OK, 5 rows affected (0.00 sec)