MariaDB-5.5.33数据库编译安装详细过程



MariaDB-5.5.33数据库编译安装详细过程.

MariaDB-5.5.33a 编译安装

作者:root@\Debian :~#

网站:http://www.52d.me

 

好吧,都向MariaDB迁徙了,看最近网上也没有多少关于MariaDB过程。

我也来尽一份心力吧,把我编译的过程发出来了。

中间不保证有错,至少我编译进,没有错误,编译通过。

一键下载解压

curl –progress http://archive.mariadb.org/mariadb-5.5.33a/kvm-tarbake-jaunty-x86/mariadb-5.5.33a.tar.gz | tar xz

建立用户组与用户

# 建立用户组

groupadd mariadb

# 建立用户 / 其实只要有这一条就行 / 它会自动建立用户组

useradd -s /sbin/nologin -g mariadb mariadb

编译配置

cmake \

# 安装根目录

-DCMAKE_INSTALL_PREFIX=/app/mariadb \

# 数据存储目录

-DMYSQL_DATADIR=/app/mariadb/data/ \

# UNIX socket文件

-DMYSQL_UNIX_ADDR=/app/mariadb/tmp/mysqld.sock \

# 默认字符集

-DDEFAULT_CHARSET=utf8 \

# 默认字符校对

-DDEFAULT_COLLATION=utf8_general_ci \

# TCP/IP端口

-DMYSQL_TCP_PORT=3306 \

# * ARCHIVE 引擎支持

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

# * ARIA 引擎支持

-DWITH_ARIA_STORAGE_ENGINE=1 \

# * BLACKHOLE 引擎支持

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

# * FEDERATEDX 引擎支持

-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \

# * PARTITION 引擎支持

-DWITH_PARTITION_STORAGE_ENGINE=1 \

# * PERFSCHEMA 引擎支持

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

# * SPHINX 引擎支持

-DWITH_SPHINX_STORAGE_ENGINE=1 \

# * XTRADB 支持

-DWITH_XTRADB_STORAGE_ENGINE=1 \

# * innoDB 引擎支持

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

# * Myisam 引擎支持

-DWITH_MYISAM_STORAGE_ENGINE=1 \

# readline库

-DWITH_READLINE=1 \

# 启用加载本地数据

-DENABLED_LOCAL_INFILE=1 \

# 扩展支持编码 ( all | utf8,gbk,gb2312 | none )

-DWITH_EXTRA_CHARSETS=all \

# 扩展字符支持

-DEXTRA_CHARSETS=all

# 已经编译时不被支持参数 / 网上还有人附加在编译参数中的项

# 这一条我也不知道是什么 / 至少我不知道

-DWITH_BIG_TABLES=1

# 配置文件(my.cnf)目录

-DSYSCONFDIR=/app/mariadb/etc/


# 运行用户

-DMYSQL_USER=mariadb

# 调试模式

-DWITH_DEBUG=0

编译

[ "`cat /proc/cpuinfo |grep 'processor'|wc -l`" = "1" ] && make

[ "`cat /proc/cpuinfo |grep 'processor'|wc -l`" != "1" ] && make -j`cat /proc/cpuinfo |grep ‘processor’|wc -l`

编译安装

make install

开机启动

cp support-files/mysql.server /etc/init.d/mariadb

chmod +x /etc/init.d/mariadb

insserv mariadb

配置

# 建立目录

mkdir -p /app/mariadb/etc/

mkdir -p /app/mariadb/data/

mkdir -p /app/mariadb/tmp/

# 复制配置

cp support-files/my-small.cnf /app/mariadb/my.cnf

# 赋权

chown mariadb:mariadb -R /app/mariadb

# 修改my.cnf

sed ‘/mysqld]/a\pid-file = /app/mariadb/data/mariadb.pid’ -i /app/mariadb/my.cnf

sed ‘/mysqld]/a\datadir = /app/mariadb/data’ -i /app/mariadb/my.cnf

sed ‘/mysqld]/a\basedir = /app/mariadb’ -i /app/mariadb/my.cnf

sed ‘/mysqld]/a\user = mariadb’ -i /app/mariadb/my.cnf

sed ‘/#innodb_lock_wait_timeout = 50/a\log_error = /app/mariadb/data/mariadb.err’ -i /app/mariadb/my.cnf

# 查看配置

cat /app/mariadb/etc/my.conf|grep -v ‘^#’|grep -v ‘^$’

初始数据库

# 初始数据库

/app/mariadb/scripts/mysql_install_db –user=mariadb –basedir=/app/mariadb –datadir=/app/mariadb/data

# 启动mariadb

/etc/init.d/mariadb start

# 创建目录链接

ln -s /app/mariadb/lib /usr/lib/mysql

ln -s /app/mariadb/include /usr/include/mysql

# 创建执行文件链接

ln -s /app/mariadb/bin/mysql /usr/bin/mysql

ln -s /app/mariadb/bin/mysqldump /usr/bin/mysqldump

ln -s /app/mariadb/bin/myisamchk /usr/bin/myisamchk

ln -s /app/mariadb/bin/mysqld_safe /usr/bin/mysqld_safe

# 管理动态链接库

ldconfig

初始化密码

# 初始化密码

/app/mariadb/bin/mysqladmin -u root password mdbpasswd

# 修改root密码 / 删除初始非 root 的用户 / 删除空密码的root

# 删除test测试库 / 禁止root远程连接权限 / 刷新权限

cat > /tmp/mysql_sec_script<<EOF

use mysql;

update user set password=password(‘mdbpasswd’) where user=’root’;

delete from user where not (user=’root’) ;

delete from user where user=’root’ and password=”;

drop database test;

DROP USER ”@’%';

flush privileges;

EOF

/app/mariadb/bin/mysql -u root -pmdbpasswd -h localhost < /tmp/mysql_sec_script

rm -f /tmp/mysql_sec_script