转自:http://jungege.blog.51cto.com/4102814/1394924mysql
MariaDB介绍 sql
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL受权许可。开发这个分支的缘由之一是:甲骨文公司收购了 MySQL后,有将MySQL闭源的潜在风险,所以社区采用分支的方式来避开这个风险。 MariaDB的目的是彻底兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英 语:XtraDB)来代替MySQL的InnoDB。shell
为了将开源进行到底,接下来让咱们编译安装并使用一个MariaDB数据库
编译安装MariaDBvim
注意:MariaDB的编译安装方式与MySQL相同安全
一、准备生产环境中数据目录(逻辑卷) bash
#
fdisk /dev/sda 建立一个逻辑分区/dev/sda6
服务器
建立逻辑卷
#pvcreate /dev/sda6
#vgcreate myvg /dev/sda6
#lvcreate -L 10G -n mydata /dev/myvg
格式化逻辑卷
#mke2fs -t ext4 /dev/myvg/mydata
建立数据目录
#mkdir -pv /mydata/data
ide
挂载逻辑卷到数据目录,并添加到开机自动挂载
二、建立mysql用户mysql组(考虑到应用安全)spa
#groupadd -r mysql
建立mysql组
#useradd -g mysql -r -d /mydata/data
建立mysql用户
#chown mysql;mysql /mydata/data
更改数据目录的属主属组
三、安装编译器cmake #yum -y install cmake
安装特定的开发包(防止编译时出错)
#yum -y install readline-devel zlib-devel openssl-devel
cmake指定编译选项的方式不一样于make,其实现方式对好比下:
./configure cmake .
./configure --help cmake . -LH or
指定安装文件的安装路径时经常使用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可使用相似以下编译选项:
-DWITH_INNOBASE_STORAGE_ENGINE=
1
-DWITH_ARCHIVE_STORAGE_ENGINE=
1
-DWITH_BLACKHOLE_STORAGE_ENGINE=
1
-DWITH_FEDERATED_STORAGE_ENGINE=
1
若要明确指定不编译某存储引擎,可使用相似以下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=
1
好比:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=
1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=
1
-DWITHOUT_PARTITION_STORAGE_ENGINE=
1
如若要编译进其它功能,如SSL等,则可以使用相似以下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=
1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=
0
其它经常使用的选项:
-DMYSQL_TCP_PORT=
3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=
1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=
0
-DENABLE_PROFILING=
1
若是想清理此前的编译所生成的文件,则须要使用以下命令:
make clean
rm CMakeCache.txt
四、下载MariaDB源码包5.5.36
五、编译安装
#tar xf mariadb-5.5.36.tar.gz
#cd mariadb-5.5.36
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
#make && make install
六、准备MariaDB脚本及配置文件
初始化数据库
#cd /usr/local/mysql
#chown -R mysql:mysql ./
更改属主属组
#scripts/mysql_install_db --datadir=/mydata/data --user=mysql
初始化库文件
#chown -R root
. 更改属主为root
提供脚本
#cd /usr/local/mysql
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
提供脚本
#chmod +x /etc/rc.d/init.d/mysqld
赋予执行权限
#chkconfig --add mysqld
添加mysqld为系统服务
#chkconfig mysqld on
添加为开机启动
提供配置文件
#cd /usr/local/mysql
#cp support-files/my-large.cnf /etc/my.cnf
#vim /etc/my.cnf
编辑配置文件[mysqld]段填写以下内容
[mysqld]
datadir =
/mydata/data
数据目录
thread_concurrency = 4
设置线程数=核心数x2
七、提供二进制文件,库文件,头文件,man手册
提供二进制文件
# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
提供库文件
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
提供头文件
# ln -sv /usr/local/include /usr/include/mysql
提供
man
手册
# echo 'MANPATH /usr/local/mysql' >> /etc/man.config
# man -M /usr/local/mysql/man mysqld
让man手册马上生效为最新
八、启动服务,链接MariaDB服务器
启动服务
#service mysqld start
#ss -ntl | grep :3306
初始化MariaDB
一、初始化第一个操做
配置文件my.cnf
集中式的配置:多个应用程序共用的配置文件
[mysqld]
[mysqld_safe]
[client]
查看mysql服务器的全部配置信息
#cd /usr/local/mysql/bin
#. /mysqld --help --verbose | head -
20
Default options are read from the following files
in
the given order:
/etc/mysql/my.conf /etc/my.cnf ~/.my.conf
使用配置文件的方式
1
、它一次查找每一个须要查找的文件,结果是全部文件的并集
2
、若是某参数在多个文件中出现屡次,后读取的最终生效
# /user/local/mysql/bin/mysqld --help --verbose
1
、显示mysqld程序启动时可用的选项,一般都是长选项
2
、显示mysqld的配置文件中可用的服务变量
mysql> SHOW GLOGAL VARIABLES
mysql> SHOW SESSION VARIABLES
二、初始化第二个操做
一、删除全部匿名用户
mysql> DROP USER
''
@
'localhost'
;
mysql> DROP USER
''
@
'127.0.0.1'
;
二、给全部的root用户设定密码:
第一种方式
mysql>
set
password
for
usrName@hostName = password(
'your_passwd'
);
第二种方式
mysql> update user
set
password = password(
'your_passwd'
) where user =
'root'
mysql> flush privileges;
第三种方式 (shell命令)
# mysqladmin -uUserName -hHost password 'new_passwd' -p
Host为远程mysql服务器的ip地址
# msyqladmin -uUserName -hHost -p flush-privileges;