环境全部基于vmware player 12
os: centos7
mariadb: mariadb-10.1.12-linux-x86_64.tar.gz
主要根据MariaDB给出的帮助文档,以及网上的这篇帖子进行操作
中间碰到了无数问题,在google的帮助下都一一解决了
耗费好几个小时,我真是个鶸
su root #切换到root用户
groupadd mysql #添加mysql组
useradd -g mysql mysql #在mysql组中添加mysql用户
cd /usr/local
gunzip < /home/cc/Destop/mariadb-10.1.12-linux-x86_64.tar.gz | tar xvf - #解压MariaDB二进制安装包
ln -s mariadb-10.1.12-linux-x86_64 mysql #创建符号链接
cd mysql
chown -R mysql . #修改权限
chgrp -R mysql . #修改权限
mkdir -p /var/lib/mysql3307 #创建数据文件夹
chmod --reference /var/lib/mysql /var/lib/mysql3307 #将数据文件夹的访问权限授予mysql,否则这个文件夹只有root用户可以访问
chown --reference /var/lib/mysql /var/lib/mysql3307
scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql3307 #初始化数据文件夹
cp -p /etc/my.cnf /var/lib/mysql3307/my.cnf #在数据文件夹中添加my.cnf配置文件,下一步会修改它
修改/var/lib/mysql3307/my.cnf,如下所示
[mysqld]
datadir=/var/lib/mysql3307
socket=/var/lib/mysql/mysql3307.sock
port=3307[mysqld_safe]
log-error=/var/log/mysqld3307.log
pid-file=/var/run/mysqld/mysqld3307.pid
bin/mysql_safe --defaults-file=/var/lib/mysql3307/my.cnf --user=mysql &
这一步后开始报错,查看错误信息后发现,是因为默认的位于/etc/下的my.cnf文件中,有这样两个路径: /var/og/mariadb/mysql.log 和 /var/run/mariadb/mysql.pid,而这两个路径不存在,所以报错
创建这两个文件夹后,依然报错,原因是权限不够,将/var/run/mariadb目录授权给mysql用户即可
bin/mysql_safe --defaults-file=/var/lib/mysql3307/my.cnf & #以我们指定的my.cn配置文件为要求,启动mysq实例
然后用命令 netstat -tanp | grep 3307,即可看到mysql已经在监听3307端口了
bin/mysql -uroot -p -h127.0.0.1 -P3307,连入mysql
修改root密码,然后用source导入数据库初始化脚本
bin/mysqladmin -S /var/lib/mysql/mysql3307.sock shutdown -P #结束3307号mysql进程
cp -r -p /var/lib/mysql3307 /var/lib/mysql3308 #复制mysql数据文件夹,-p参数是为了连同权限一起复制,否则复制过来的权限全是root,mysql就无法访问了
cp -r -p /var/lib/mysql3307 /var/lib/mysql3309
修改mysql3308与mysql3309文件夹中的my.cnf文件,然后运行
bin/mysqld_safe --defaults-file=/var/lib/mysql3307/my.cnf &
bin/mysqld_safe --defaults-file=/var/lib/mysql3308/my.cnf &
bin/mysqld_safe --defaults-file=/var/lib/mysql3309/my.cnf &
即可同时运行三个MariaDB数据库实例