linux下源码安装mariadb
1.mariadb源码包下载地址:https://downloads.mariadb.org/
2.安装mariadb是依赖包,创建mysql用户和目录:
命令 yum -y install readline-devel zlib-devel openssl-devel libaio-deve ncurses-devel
创建mysql的安装目录/usr/local/mysql 和数据库所在的目录 /data/mysql 命令 :mkdir -p /usr/local/mysql /data/mysql
修改文件夹的属主和属组
yum -y install readline-devel zlib-devel openssl-devel libaio-deve ncurses-devel gcc gcc-c++ cmake
mkdir -p /usr/local/mysql /data/mysql
useradd mysql -s /bin/nologin
chown -R mysql.mysql /data/mysql
3.mariadb解压安装
tar -xvf mariadb-10.2..tar.gz
cd mariadb-10.2./ cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITHOUT_TOKUDB= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STPRAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWIYH_READLINE= -DWIYH_SSL=system \
-DVITH_ZLIB=system \
-DWITH_LOBWRAP= \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
-DCMAKE_INSTALL_PREFIX是指定安装的位置这里是/usr/local/mysql
-DMYSQL_DATADIR是指定MySQL的数据目录这里是/data1/mysql,安装目录和数据目录都可以自定义设置,
-DSYSCONFDIR是指定配置文件所在的目录,一般都是/etc ,具体的配置文件是/etc/my.cnf
-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MySQL中一款开源的存储引擎,可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机默认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message)这样的错误,
然后后面那些参数都是可选的,可以加也可以不加,最后的编码建议设置一下,所以编译指令也可以简化成下面这样:
注意:如果万一执行中有了错误,可以执行: rm -f CMakeCache.txt 删除编译缓存,让指令重新执行,否则没次读取这个文件,命令修改正确也是报错 cmake没问题,可以编译并且安装了: make && make install 时间有点长,耐心等待
4.mariadb安装完成过后执行
cd /usr/local/mysql
ll .
chown -R mysql.mysql .
scripts/mysql_install_db --datadir=/data/mysql --user=mysql #使用 `mysql` 用户执行脚本, 安装数据库到数据库存放目
#chown -R root .
mkdir /var/log/mariadb #创建日志目录
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock #scoket文件链接到my.cnf中所在的位置
vim /etc/my.cnf
5.启动mariadb
/usr/local/mysql/support-files/mysql.server start
将/usr/local/mysql/bin设为环境变量,方便以后的操作
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加至系统服务
chkconfig mysqld on # 设置开机自启动
现在如果启动可能会报错,原因是日志目录没有建立,默认是/var/log/mariadb/mariadb.log,后来也可以修改,现在执行: mkdir /var/log/mariadb 建立日志目录,然后执行: /etc/init.d/mysqld start 或者 systemctl start mysqld.service 都可以启动mysql服务
启动服务后,还不能马上进入mysql shell界面,原因是刚才编译时执行本地socket为:/tmp/mysql.sock但是查看/etc/my.cnf中配置的位置却是:/var/lib/mysql/mysql.sock,现在执行命令: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立软链接即可
为了方便可以将mysql目录添加到环境变量,现在可以执行 ./bin/mysql 直接进入MariaDB交互式界面了,默认root用户密码为空:
最新文章
- discuz X3.1 关于分表 和 分表数据迁移
- ViewStub源码分析
- Android 操作系统的内存回收机制(转载)
- (keymap设置及eclipse常用快捷键总结)
- phpcms v9无法连接数据库服务器,请检查配置
- IntellijIDEA 使用技巧
- 图解Java字符串不变性
- Enlightenment笔记
- MFC 控件用法
- Zabbix Agent端配置文件说明
- 在Editplus中配置java的(带包)编译(javac)和运行(java)的方法
- UVA 1451 Average
- 迁移FRS至DFSR SYSVOL
- JAVA实例
- Egret飞行模拟-开发记录02
- 十六、springcloud(二)Eureka集群
- HDU 1025 城市供应 【LIS】
- LAMP搭建个人网站
- javascript的console命令
- 〖Linux〗Qt5.2.0+gsoap开发Android的NDK程序遇到错误的解决