在centos7环境下建立MariaDB多实例

环境全部基于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数据库实例

原文地址:https://www.cnblogs.com/stevenczp/p/5376670.html