### 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) |