MariaDB安装与配置

MariaDB安装与配置 

本文是基于CentOS7.2系统来进行mariadb的安装与配置,安装前请关闭selinux和在iptables规则中开放3306端口,在此次我们直接清空了iptables规则。

Iptables –F
vim /etc/selinux/config
    #SELINUX=enforcing ##注释掉此项##
    #SELINUXTYPE=targeted ##注释掉此项##
    SELINUX=disabled ##添加此项##

一、MariaDB的安装

1、使用yum安装mariadb

添加mariadb的yum源,这里使用阿里源:

get http://mirrors.aliyun.com/repo/Centos-7.repo  /etc/yum.repos.d/
yum install MariaDB-server MariaDB-client ##安装mariadb服务器端、客户端##
vim /etc/my.cnf.d/server.cnf    ##mariadb服务器端配置文件##
    [mysqld]        ##以下项是优化项目可根据需要选择##
    innodb_file_per_table=ON    ##使用独立表空间模式(建议使用)##
    skip_name_resolve=ON    ##禁止域名反向解析(可选)##
systemctl start mariadb.service     ##启动mariadb服务
systemctl enable mariadb.service    ##设置为开机启动##
mysql_secure_installation           ##安装完成后安全初始化,添加root密码,删除匿名登录账户,禁止远程使用root用户登录,删除测试数据库和使用##  
mysql –uroot –hlocalhost –p’PASSWORD  ##登陆数据库##’

2、用二进制压缩包安装MariaDB

MariaDB二进制压缩包命名格式形如:mariadb-版本名-操作系统名.tar.gz,请确认从此外下载为您的机器下载正确的版本。

官方下载点:https://downloads.mariadb.org/,这里我们将使用mariadb5.5版本.

请将二进制包解压到某目录,然后进行mysqlinstalldb安装脚本。

我们将MariaDB安装到目录/usr/local/mysql中(这是许多平台中的默认的安装目录),当然安装其他任意目录中也是可行的。

我们为其建立一个软链接,这样做可以方便地改变软链接而使用不同目录中不同版本的MariaDB。

注意: 对于MariaDB 5.1.32 只要将行”./scripts/mysqlinstalldb –user=mysql”改成”./bin/mysqlinstalldb –user=mysql”就行了。

确保你使用了正确的my.cnf文件

MariaDB在’/etc/my.cnf’位置寻找配置文件(有些系统中是’/etc/mysql/my.cnf’或’~/.my.cnf’)。如果你的系统中有旧的my.cnf文件(系统中曾安装MariaDB或MySQL带来的),你要注意用二进制.tar包安装了MariaDB后,用了旧的配置文件。正常的解决方法是不使用目录中的配置文件,而使用二进制包中的配制文件。具体的做法是:在你的根目录中建立在个.my.cnf配置文件,然后通过选项’–defaults-file=~/.my.cnf’配置mysqlinstalldb、mysqld_safe和mysql(命令行工具)只使用你自建的配置文件。要注意的是,此选项必须是命令的第一个选项。

用root帐户将MariaDB安装在/usr/local/mysql

如果有系统的root使用权限,你可能使用“mysql”用户(组)来安装MariaDB(以保持与MySQL的兼容性):

groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar -zxvpf /path-to/mariadb-VERSION-OS.tar.gz
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

建议使用指令ln -s创建一个软链接,从而为安装多个不的MariaDB版本进行测试、升级、降级等提供方便。

如果你是用MariaDB替代,你不用关闭MySQL,你只要调用mysqlinstalldb指令,MariaDB会通过你原来的/etc/my.cnf文件(路径会随你的系统而有所不同)中找到数据目录。

你现在需用如下方式执行mysqld指令:

./bin/mysqld_safe --user=mysql &
or
./bin/mysqld_safe --defaults-file=~/.my.cnf --user=mysql &

修改你的$PATH以便你调用mysql、mysqldump等进行连接测试。

export PATH=$PATH:/usr/local/mysql/bin/

你或更愿意通过修改.bashrc或.bash_profile文件来永久保存设置

用root帐户将MariaDB安装在任意目录

下面的操作将目录/usr/local更改到你选择的目录:

cd /usr/local
gunzip < /path-to/mariadb-VERSION-OS.tar.gz | tar xf -
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --defaults-file=~/.my.cnf

如果你用不来上面的gunzip命令,如有 gnu tar的话,你也可这样:

tar xfz /path-to/mariadb-VERSION-OS.tar.gz

你需用下面的指令启动mysqld:

./bin/mysqld_safe --defaults-file=~/.my.cnf &

自动启动mysqld

你可将文件mysql.server拷贝到合适的位置使mysqld(MariaDB服务器)自动进行。

cp support-files/mysql.server /etc/init.d/mysql.server

具体的位置取决于你的系统,mysql.server文件中含有怎样使用与优化它的相关指导。

安装后的工作

到了这一点后,请记住为所有不可信来源的连接设置正确的密码来减小安全风险!也可以考虑用mysql.server使在系统启动时自动启动MariaDB。

二、MariaDB的配置

Mariadb使用的是ini风格的配置文件,为多个程序同时提供配置; mariadb读取多处的多个配置文件,而且会以指定的次序的进行; 查看读取顺序的命令:

my_print_defaults
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

/etc/my.cnf 是由mariadb-libs生成的

/etc/my.cnf.d/server.cnf是由 mariadb-server生成

/etc/my.cnf.d/client.cnf是由mariadb生成

不同的配置文件中出现同一参数且拥有不同值时,后读取将为最终生效值。

修改默认读取的配置文件(mysqld_safe命令):

--defaults-file=file_name

于读取的默认配置文件之外再加载一个文件:

--defaults-extra-file=path

配置文件格式:ini风格的配置文件,能够为mysql的各种应用程序提供配置信息:

[mysqld]
[mysqld_safe]
[mysqld_multi]
[server]
[mysql]
[mysqldump]
[client]
    ...
配置参数格式:
    PARAMETER = VALUE
    PARAMETER写法:
            innodb_file_per_table (建议使用)
            innodb-file-per-table

三、MariaDB的程序文件及命令:

服务端程序:mysqldsafe, mysqldmulti 客户端程序:mysql, mysqldump, mysqladmin 工具程序:myisampack, …

1、mysql:交互式CLI工具;命令化运行;

mysql [options] db_name

常用选项:

--host=host_name, -h host_name:服务端地址;
--user=user_name, -u user_name:用户名;
--password[=password], -p[password]:用户密码; 
--port=port_num, -P port_num:服务端端口; 
--protocol={TCP|SOCKET|PIPE|MEMORY}:本地通信:基于本地回环地址进行请求,将基于本地通信协议;
        Linux:SOCKET
        Windows:PIPE,MEMORY
    非本地通信:使用非本地回环地址进行的请求; TCP协议;
--socket=path, -S path
--database=db_name, -D db_name:
--compress, -C:数据压缩传输
--execute=statement, -e statement:非交互模式执行SQL语句;
--vertical, -E:查询结果纵向显示;

命令:

客户端命令:于客户端执行;

服务端命令:SQL语句,需要一次性完整地发往服务端;语句必须有结束符;

?         (\?) Synonym for `help'. ##使用帮助##
clear     (\c) Clear the current input statement.##清除已输入的##
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.##设置语句分隔符##
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.##退出##
go        (\g) Send command to mysql server.#发送命令到mysql服务器#
help      (\h) Display this help.##显示帮助##
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.##不写入输出文件##
pager   (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.##打印现在的命令##
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.  ##退出##
rehash    (\#) Rebuild completion hash.##重新hash##
source    (\.) Execute an SQL script file. Takes a file name as an argument. ##执行一个SQL脚本文件
status    (\s) Get status information from the server.##从服务器获取状态信息##
system    (\!) Execute a system shell command.
tee     (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. ##使用其他数据库##
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.##切换到另一个字符集##
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
mysql命令的使用帮助:
man mysql
mysql  --help  --verbose

sql脚本运行:

mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT

mysqld服务器程序:工作特性的定义方式: 命令行选项 配置文件参数

服务器参数/变量:设定MySQL的运行特性;

mysql> SHOW [GLOBAL | SESSION] VARIABLES [like_or_where];

状态(统计)参数/变量:保存MySQL运行过程中的统计数据或状态数据;

mysql> SHOW [GLOBAL | SESSION] STATUS [like_or_where];

显示单个变量设定值的方法:

mysql> SELECT @@[global.|session.]system_var_name   
    %:匹配任意长度的任意字符;
    _:匹配任意单个字符;

变量/参数级别: 全局:为所有会话设定默认; 会话:跟单个会话相关;会话建立会从全局继承;

服务器变量的调整方式: 运行时修改: global:仅对修改后新建立的会话有效; session:仅对当前会话有效,且立即生效; 通过配置文件修改: 重启后生效;

运行时修改服务器变量值操作方法:

mysql> HELP SET
SET [GLOBAL | SESSION] system_var_name = expr
SET [@@global. | @@session. | @@]system_var_name = expr

安装完成后的安全初始化:

mysql_secure_installation

运行前常修改的参数:

innodb_file_per_table=ON  ##开始独立表空间模式##
skip_name_resolve=ON    ##禁止域名反向解析##
sql_safe_updates=ON     ##开启安全更新模式,不可在配置文件中直接定义##
...

原创文章,作者:征(_少,如若转载,请注明出处:http://www.178linux.com/69312

(0)
征(_少征(_少
上一篇 2017-02-18 19:55
下一篇 2017-02-18 21:24

相关推荐

  • Liunx 磁盘管理

    我们先来了解一下在Linux中磁盘的命名方式 命名:/dev/DEV_FILE    Sd :表示SCSI硬盘    Sda:表示SCSI硬盘中第一块硬盘,b表示第二块,以此类推 在Linux上次磁盘主要有两种分区方式MBR和GPT MBR分区格式最多有4个分区,可以是4个主分区,或者3个主分区和1个扩展分区,第一个逻…

    2017-08-21
  • mysql—MHA原理与实现

    MHA 一:简述MHA 1.1关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其它从节点获取额外信息来避免一致性方…

    2016-11-27
  • 复习-RAID原理详解

    一、RAID RAID:冗余磁盘阵列,将多个磁盘不同的方式组成阵列,作为单一磁盘使用;通过RAID,大幅提高了I/O能力、容错性。 二、RAID级别 不同的磁盘阵列组成模式,称为磁盘级别,不同的RAID级别可提供不同的I/O能力提升、磁盘可用率和容错性 1、RAID 0 条带卷 strip  用两块和两块以上磁盘组成,RAID控制器将数据平均切割成…

    Linux干货 2016-07-04
  • Shell脚本-循环基础

    Shell脚本-循环基础 背景: 正在学习Shell脚本之循环,发现Shell的循环和其他编程语言大同小异,逻辑上都是相通的,但在使用格式上却有点不同,在学习完Shell循环后,将学习的心得体会记录下来,以备今后复习。 介绍: 什么是Shell脚本:       shell script是利用shell的功能…

    2017-08-26
  • Mogilefs使用Nginx实现代理访问

    MogileFS介绍:  MogileFS是一个开源的分布式文件存储系统,由LiveJournal旗下的DangaInteracitve公司研发。可支持文件自动备非的功能,提供高可用性和高可扩展性。 MogileFS组件:  trackers:   MoglieFS的调度器,是mogileFS的核心,访问入口。  功能…

    Linux干货 2015-08-06
  • N25第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep -E '^[[:space:]]+.*' /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2017-01-08