MariaDB三种方法安装及多实例实现 |
您所在的位置:网站首页 › 如何安装mariadb › MariaDB三种方法安装及多实例实现 |
本章内容 Mariadb的三种安装方式: 1、程序包管理器管理的程序包 2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用 3、源代码:编译安装 MariaDB在一台机器上的多实例实现
本机环境 系统版本:以CentOS_7.5_x86_64为例 MariaDB版本:以MariaDB 10.2.15 Stable为例
程序包管理器(yum)方式安装MariaDB 1、配置好yum源后,输yum -y install mariadb-server即可,不过mariadb版本是5.5的,不是较新的 2、如果想用yum安装较新版本的mariadb,可到MariaDB官网上查较新版本的yum源,官网地址是http://mariadb.org/,打开网页后点击Download,再点Download 3、这里以10.2.15版本为例,点击Download 10.2.15 Stable Now! 4、拉到最下面,点击Repository Configuration Tool. 5、依次点击CentOS --> CentOS 7 (x86_64) --> 10.2 [Stable],可以看到下方出现了yum源信息,将此信息复制,即可在CentOS中以此配置yum仓库 配好后输命令: yum clean all yum repolist yum -y install mariadb-server 即可安装较新版的10.2.15版的MariaDB
安装包准备 准备MariaDB的源码安装包,以及二进制程序安装包 二进制程序安装包其实就是已编译好的包,不用再编译 1、到官网上下载安装包,仍然是点击Download,再点击Download,之后点击Download 10.2.15 Stable Now 2、下载两个包,mariadb-10.2.15.tar.gz是源码包,mariadb-10.2.15-linux-x86_64.tar.gz是二进制格式的程序包
3、用Linux的rz工具或者Xshell的xftp工具,把两个程序包传到两台虚拟机上 二进制程序包安装MariaDB (1) 准备用户 groupadd -r -g 306 mysql useradd -r -g 306 -u 306 -m -d /data/mysqldb mysql (2) 准备数据目录 以/data/mysqldb为例,建议使用逻辑卷 chown mysql:mysql /data/mysqldb chmod 700 /data/mysqldb (3) 准备二进制程序 tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local #/usr/local是程序包指定的目录,必须解压在这里 cd /usr/local;ln -sv mariadb-10.2.15 mysql chown -R mysql:mysql /usr/local/mysql/ (4) 准备配置文件 mkdir /etc/mysql/ cp support-files/my-huge.cnf /etc/mysql/my.cnf #/usr/local/mysql/support-files下有很多my-*.cnf文件,分别对应不同的内存大小,可打开看看,选择对应自己机器的拷贝就行 vim /etc/mysql/my.cnf [mysqld]中添加三个选项: datadir = /data/mysqldb innodb_file_per_table = on 可不加 skip_name_resolve = on 禁止主机名解析,建议使用,不加也可 (5) 创建数据库文件 cd /usr/local/mysql/ ./scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql (6) 准备日志文件 touch /var/log/mysqld.log chown mysql:mysql /var/log/mysqld.log (7) 准备服务脚本,并启动服务 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld service mysqld start (8) 安全初始化 /user/local/mysql/bin/mysql_secure_installation (9) 添加环境变量 echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh 源码编译安装MariaDB (1) 安装包 yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake libevent-devel gnutls-devel libaio-devel openssl-devel ncurses-devel libxml2-devel (2) 做准备用户和数据目录 mkdir /data useradd -r -s /sbin/nologin -m -d /data/mysqldb/ mysql tar xvf mariadb-10.2.15.tar.gz (3) cmake 编译安装 cd mariadb-10.2.15/ 编译选项,可参考: https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html 这里直接输命令 cmake . \ -DCMAKE_INSTALL_PREFIX=/app/mysql \ -DMYSQL_DATADIR=/data/mysqldb/ \ -DSYSCONFDIR=/etc \ -DMYSQL_USER=mysql \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install (4) 准备环境变量 echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh (5) 生成数据库文件 chmod 700 /data/mysqldb cd /app/mysql/ scripts/mysql_install_db --datadir=/data/mysqldb/ --user=mysql (6) 准备配置文件 cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf vim /etc/mysql/my.cnf [mysqld]中添加: datadir = /data/mysqldb chown -R mysql:mysql /app/mysql/ (7) 准备启动脚本 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld (8) 启动服务 chkconfig --add mysqld service mysqld start
MariaDB在一台机器上的多实例实现 (1) 安装MariaDB,这里用yum安装 yum install mariadb-server (2) 创建多实例目录 这里创建三个实例,最后三个实例会分别使用3306,3307,3308端口 mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv chown -R mysql.mysql /mysqldb/ (3) 生成数据库文件 mysql_install_db --datadir=/mysqldb/3306/data --user=mysql mysql_install_db --datadir=/mysqldb/3307/data --user=mysql mysql_install_db --datadir=/mysqldb/3308/data --user=mysql (4) 准备配置文件 cp /etc/my.cnf /mysqldb/3306/etc/ vim /mysqldb/3306/etc/my.cnf [mysqld] port=3306 datadir=/mysqldb/3306/data socket=/mysqldb/3306/socket/mysql.sock
[mysqld_safe] log-error=/mysqldb/3306/log/mariadb.log pid-file=/mysqldb/3306/pid/mariadb.pid #!includedir /etc/my.cnf.d
cp /mysqldb/3306/etc/my.cnf /mysqldb/3307/etc/my.cnf #复制配置文件到3307和3308中 cp /mysqldb/3306/etc/my.cnf /mysqldb/3308/etc/my.cnf vim /mysqldb/3307/etc/my.cnf :%s/3306/3307/ #将所有端口号从3306替换为3307 :wq vim /mysqldb/3308/etc/my.cnf :%s/3306/3308/ #将所有端口号从3306替换为3308 :wq
(5) 准备服务脚本 这里准备了一个服务脚本,粘到一个空文件里,并命名为mysqld: #!/bin/bash #FileName: mysqld port=3306 mysql_user="root" mysql_pwd="" cmd_path="/usr/bin" mysql_basedir="/mysqldb" mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock" function_start_mysql() { if [ ! -e "$mysql_sock" ];then printf "Starting MySQL...\n" ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> / dev/null & else printf "MySQL is running...\n" exit fi } function_stop_mysql() { if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped...\n" exit else printf "Stoping MySQL...\n" ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown fi } function_restart_mysql() { printf "Restarting MySQL...\n" function_stop_mysql sleep 2 function_start_mysql } case $1 in start) function_start_mysql ;; stop) function_stop_mysql ;; restart) function_restart_mysql ;; *) printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n" esac #End of file
chmod 700 mysqld cp mysqld /mysqldb/3306/ cp mysqld /mysqldb/3307/ cp mysqld /mysqldb/3308/ #修改各实例配置文件的端口号 vim /mysqldb/3306/mysqld vim /mysqldb/3307/mysqld vim /mysqldb/3308/mysqld
(6) 启动三个实例 /mysqldb/3306/mysqld start /mysqldb/3307/mysqld start /mysqldb/3308/mysqld start (7) 连接三个实例 mysql -S /mysqldb/3306/socket/mysql.sock mysql -S /mysqldb/3307/socket/mysql.sock mysql -S /mysqldb/3308/socket/mysql.sock
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |