当前位置: > 数据库 > MariaDB >

MariaDB-5.5.33a 编译安装 [ 完结 ]

时间:2016-05-17 12:25来源:linux.it.net.cn 作者:IT
### MariaDB-5.5.33a 编译安装 [ 完结 ]

网站: http://www.it.net.cn
好吧,都向 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 << DEB
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;
DEB
/app/mariadb/bin/mysql -u root -pmdbpasswd -h localhost < /tmp/mysql_sec_script
rm -f /tmp/mysql_sec_script


#### 最后打包上传



tar czf - /app | ssh root@ip:port tar xzf - -C /app

(责任编辑:IT)
------分隔线----------------------------