cd /usr/local/src
wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
cd /usr/local/mariadb
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
vi /usr/local/mariadb/my.cnf //定义basedir和datadir
cp support-files/mysql.server /etc/init.d/mariadb
vim /etc/init.d/mariadb //定义basedir、datadir、conf以及启动参数
/etc/init.d/mariadb start
安装过程
mariadb和mysql安装过程类似
1首先切换到/usr/local/src目录下
cd /usr/local/src
2然后在官网下载10.2.6版本(官网下载很慢,因为地址在美国),自己百度云有提前下载好的,只需要下载到windows,然后 rz 命令从windows上传到linux中
rz命令,安装包——>yum install -y lrzsz
3再去使用 tar命令 进行解压
tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
4解压完,去查看下文件
5并将解压的包移动到/usr/local下,并改名叫mariadb——>这里的改名,是为了之前安装mysql的名字有所区分
6然后进入到/usr/local/mariadb 目录下去
cd /usr/local/mariadb
7创建mysql用户,创建data——>这里因为之前安装mysql的时候,已经创建过了所以不需要创建useradd mysql
useradd mysql
mkdir /data/
8初始化,./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
定义basedir=/usr/local/mariadb/ 若不定义 ,就会去找mysql了
9查看是否初始化成功,看 echo $? 执行结果是否为0,若是 0 ,则表示初始化成功
或者查看/data/mariadb/目录下,是否生成了一些目录——>和/data/mysql/ 类似
10拷贝配置文件,定义启动脚本
配置文件存放在/usr/local/mariadb/suport/files/目录下,会看到有很多配置文件
11打开support-files/my-small.cnf 文件
my-small.cnf、my-medium.cnf、my-large.cnf这三个配置文件区别在于 缓存的数值大小不同
根据内存大小的不同,它可以给你指定合适的缓存,这样能够让你的mysql达到更高效的性能
vim support-files/my-small.cnf
12因为我们做实验,内存本来就不大,可以使用最小的一个my-small.cnf ,拷贝过去
若是内存有几十个G,可以使用my-huge.cnf拷贝过去,然后根据实际的运行情况 ,去适当的调整参数
13拷贝文件到/usr/local/mariadb/my.cnf
mariadb这里就不放到/etc/my.cnf下了,因为这是mysql用的,这里为了区分到/usr/local/mariadb/my.cnf
14编辑配置文件 /usr/local/mariadb/my.cnf——>这里面配置不用修改
15拷贝启动脚本到 /etc/init.d/mariadb
cp support-files/mysql.server /etc/init.d/mariadb
16编辑启动脚本
vim /etc/init.d/mariadb
定义 basedir=/usr/local/mariadb
定义 datadir=/data/mariadb
自定义参数 conf=$basedir/my.cnf
在定义conf后,还需要在 启动命令下面指定下——>在一般模式下,搜索 /start 启动命令
在 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
中,增加--defaults-file="$conf",最后为 $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
17在启动前,先查看是否有mysql服务在启动(有的话用killall mysqld关闭)
18启动mariadb服务,并去查看是否启动
查看是否启动,用ps aux |grep mysql 也可以,启动的服务进程是mysqld,因为mariadb是mysql的一个分支
19若是在服务器上只安装了mariadb,没有mysql,那完全可以把my.cnf放在/etc目录下,那启动脚本就不需要conf变量了
机器装了mysql和mariadb
一台机器上装了mysql,又装了mariadb (这种既装了mysql和mariadb的概率很低),因为有多个配置文件在/etc/my.cnf,不论是在初始化的时候,还是启动多个mysql服务的时候,它都会影响正常的结果,所以要么不把 my.cnf 放在etc目录下,一旦放了,很有可能受到影响。
问题:
用ps aux |grep mysql会发现其中的--datadir=/data/mysql,并不是我们预期的--datadir=/data/mariadb
这是因为调用了/etc/my.cnf中的配置,有人可能会问,不是已经指定了--defaults-file=/usr/local/mariadb/my.cnf 配置文件,为什么还要去加载/etc/my.cnf中的配置呢,是因为--defaults-file=/usr/local/mariadb/my.cnf文件中,并没有去定义dataidr 这个选项,然后去调用的时候,没有在配置文件中找到这个参数,然后在/etc/my.cnf中调用
解决方法:
1需要去编辑指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb (若是datadir加在其他地方是无效的)
当然不是只能拥有一个数据库,只要将各个参数配置完善,一个机器上可以跑多个mysql服务
2在修改完配置文件后,启动/etc/init.d/mariadb start (第一次启动mariadb服务)——>若是mariadb服务已经启动了,则/etc/init.d/mariadb restart ,但显示的结果还未正常,那我们就直接killall mysqld服务,然后再ps aux |grep mysql查看下服务是否杀死
3最后再来 /etc/init.d/mariadb restart 开启mariadb服务,会看到显示正常