Shusain 发布的文章

在我们前面的教程中,我们已经学习了 如何安装和配置 MariaDB,也学习了 管理 MariaDB 的一些基础命令。现在我们来学习,如何在 MariaDB 服务器上配置一个主从复制。

复制是用于为我们的数据库创建多个副本,这些副本可以在其它数据库上用于运行查询,像一些非常繁重的查询可能会影响主数据库服务器的性能,或者我们可以使用它来做数据冗余,或者兼具以上两个目的。我们可以将这个过程自动化,即主服务器到从服务器的复制过程自动进行。执行备份而不影响在主服务器上的写操作。

因此,我们现在去配置我们的主-从复制,它需要两台安装了 MariaDB 的机器。它们的 IP 地址如下:

  • 主服务器 - 192.168.1.120 主机名 - master.ltechlab.com
  • 从服务器 - 192.168.1.130 主机名 - slave.ltechlab.com

MariaDB 安装到这些机器上之后,我们继续进行本教程。如果你需要安装和配置 MariaDB 的教程,请查看这个教程

第 1 步 - 主服务器配置

我们现在进入到 MariaDB 中的一个命名为 important 的数据库,它将被复制到我们的从服务器。为开始这个过程,我们编辑名为 /etc/my.cnf 的文件,它是 MariaDB 的配置文件。

$ vi /etc/my.cnf

在这个文件中找到 [mysqld] 节,然后输入如下内容:

[mysqld]
log-bin
server_id=1
replicate-do-db=important
bind-address=192.168.1.120

保存并退出这个文件。完成之后,需要重启 MariaDB 服务。

$ systemctl restart mariadb

接下来,我们登入我们的主服务器上的 Mariadb 实例。

$ mysql -u root -p

在它上面创建一个命名为 slaveuser 的为主从复制使用的新用户,然后运行如下的命令为它分配所需要的权限:

STOP SLAVE;
GRANT REPLICATION SLAVE ON *.* TO  'slaveuser'@'%' IDENTIFIED BY 'iamslave';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

注意: 我们配置主从复制需要 MASTER_LOG_FILEMASTER_LOG_POS 的值,它可以通过 show master status 来获得,因此,你一定要确保你记下了它们的值。

这些命令运行完成之后,输入 exit 退出这个会话。

第 2 步 - 创建一个数据库备份,并将它移动到从服务器上

现在,我们需要去为我们的数据库 important 创建一个备份,可以使用 mysqldump 命令去备份。

$ mysqldump -u root -p important > important_backup.sql

备份完成后,我们需要重新登录到 MariaDB 数据库,并解锁我们的表。

$ mysql -u root -p
$ UNLOCK TABLES;

然后退出这个会话。现在,我们移动我们刚才的备份到从服务器上,它的 IP 地址是:192.168.1.130。

在主服务器上的配置已经完成了,现在,我们开始配置从服务器。

第 3 步:配置从服务器

我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:

[mysqld]
server-id = 2
replicate-do-db=important
[ …]

现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:

$ mysql -u root -p < /data/ important_backup.sql

当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 important 上的用户 'slaveuser' 授权。

$ mysql -u root -p
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

接下来,为了这个变化生效,重启 MariaDB。

$ systemctl restart mariadb

第 4 步:启动复制

记住,我们需要 MASTER_LOG_FILEMASTER_LOG_POS 变量的值,它可以通过在主服务器上运行 SHOW MASTER STATUS 获得。现在登入到从服务器上的 MariaDB,然后通过运行下列命令,告诉我们的从服务器它应该去哪里找主服务器。

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST= '192.168.1.110′, MASTER_USER='slaveuser', MASTER_PASSWORD='iamslave', MASTER_LOG_FILE='mariadb-bin.000001′, MASTER_LOG_POS=460;
SLAVE START;
SHOW SLAVE STATUS\G;

注意: 请根据你的机器的具体情况来改变主服务器的配置。

第 5 步:测试复制

我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 MariaDB。

$ mysql -u root -p

选择数据库为 important

use important;

在这个数据库上创建一个名为 test 的表:

create table test (c int);

然后在这个表中插入一些数据:

insert into test (c) value (1);

检索刚才插入的值是否存在:

select * from test;

你将会看到刚才你插入的值已经在这个新建的表中了。

现在,我们登入到从服务器的数据库中,查看主从复制是否正常工作。

$ mysql -u root -p
$ use important;
$ select * from test;

你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。

我们的教程结束了,请在下面的评论框中留下你的查询/问题。


via: http://linuxtechlab.com/creating-master-slave-replication-mariadb/

作者:Shusain 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在早先的教程中,我们讨论了如何使用 ISO 镜像和在线 Yum 仓库的方式来创建自己的 Yum 仓库 。创建自己的 Yum 仓库是一个不错的想法,但若网络中只有 2-3 台 Linux 机器那就没啥必要了。不过若你的网络中有大量的 Linux 服务器,而且这些服务器还需要定时进行升级,或者你有大量服务器无法直接访问互联网,那么创建自己的 Yum 仓库就很有必要了。

当我们有大量的 Linux 服务器,而每个服务器都直接从互联网上升级系统时,数据消耗会很可观。为了节省数据量,我们可以创建个离线 Yum 源并将之分享到本地网络中。网络中的其他 Linux 机器就可以直接从本地 Yum 上获取系统更新,从而节省数据量,而且传输速度也会很好。

我们可以使用下面两种方法来分享 Yum 仓库:

  • 使用 Web 服务器(Apache)
  • 使用 FTP 服务器(VSFTPD)

在开始讲解这两个方法之前,我们需要先根据之前的教程创建一个 Yum 仓库。

使用 Web 服务器

首先在 Yum 服务器上安装 Web 服务器(Apache),我们假设服务器 IP 是 192.168.1.100。我们已经在这台系统上配置好了 Yum 仓库,现在我们来使用 yum 命令安装 Apache Web 服务器,

$ yum install httpd

下一步,拷贝所有的 rpm 包到默认的 Apache 根目录下,即 /var/www/html,由于我们已经将包都拷贝到了 /YUM 下,我们也可以创建一个软连接来从 /var/www/html 指向 /YUM

$ ln -s /var/www/html/Centos /YUM

重启 Web 服务器应用改变:

$ systemctl restart httpd

配置客户端机器

服务端的配置就完成了,现在需要配置下客户端来从我们创建的离线 Yum 中获取升级包,这里假设客户端 IP 为 192.168.1.101

/etc/yum.repos.d 目录中创建 offline-yum.repo 文件,输入如下信息,

$ vi /etc/yum.repos.d/offline-yum.repo
name=Local YUM
baseurl=http://192.168.1.100/CentOS/7
gpgcheck=0
enabled=1

客户端也配置完了。试一下用 yum 来安装/升级软件包来确认仓库是正常工作的。

使用 FTP 服务器

在 FTP 上分享 Yum,首先需要安装所需要的软件包,即 vsftpd。

$ yum install vsftpd

vsftp 的默认根目录为 /var/ftp/pub,因此你可以拷贝 rpm 包到这个目录,或者为它创建一个软连接:

$ ln -s /var/ftp/pub /YUM

重启服务应用改变:

$ systemctl restart vsftpd

配置客户端机器

像上面一样,在 /etc/yum.repos.d 中创建 offline-yum.repo 文件,并输入下面信息,

$ vi /etc/yum.repos.d/offline-yum.repo
[Offline YUM]
name=Local YUM
baseurl=ftp://192.168.1.100/pub/CentOS/7
gpgcheck=0
enabled=1

现在客户机可以通过 ftp 接收升级了。要配置 vsftpd 服务器为其他 Linux 系统分享文件,请阅读这篇指南

这两种方法都很不错,你可以任意选择其中一种方法。有任何疑问或这想说的话,欢迎在下面留言框中留言。


via: http://linuxtechlab.com/offline-yum-repository-for-lan/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

之前我们学过了在 Centos/RHEL 7 上安装 MariaDB 服务器并保证其安全,使之成为了 RHEL/CentOS 7 的默认数据库。现在我们再来看看一些有用的 MariaDB 管理命令。这些都是使用 MariaDB 最基础的命令,而且它们对 MySQL 也同样适合,因为 MariaDB 就是 MySQL 的一个分支而已。

(推荐阅读:在 RHEL/CentOS 上安装并配置 MongoDB

MariaDB 管理命令

1、查看 MariaDB 安装的版本

要查看所安装数据库的当前版本,在终端中输入下面命令:

$ mysql -version

该命令会告诉你数据库的当前版本。此外你也可以运行下面命令来查看版本的详细信息:

$ mysqladmin -u root -p version

2、登录 MariaDB

要登录 MariaDB 服务器,运行:

$ mysql -u root -p

然后输入密码登录。

3、列出所有的数据库

要列出 MariaDB 当前拥有的所有数据库,在你登录到 MariaDB 中后运行:

> show databases;

(LCTT 译注:$ 这里代表 shell 的提示符,> 这里代表 MariaDB shell 的提示符。)

4、创建新数据库

在 MariaDB 中创建新数据库,登录 MariaDB 后运行:

> create database dan;

若想直接在终端创建数据库,则运行:

$ mysqladmin -u user -p create dan

这里,dan 就是新数据库的名称。

5、删除数据库

要删除数据库,在已登录的 MariaDB 会话中运行:

> drop database dan;

此外你也可以运行,

$ mysqladmin -u root -p drop dan

注意: 若在运行 mysqladmin 命令时提示 “access denied” 错误,这应该是由于我们没有给 root 授权。要对 root 授权,请参照第 7 点方法,只是要将用户改成 root。

6、创建新用户

为数据库创建新用户,运行:

> CREATE USER 'dan'@'localhost' IDENTIFIED BY 'password';

7、授权用户访问某个数据库

授权用户访问某个数据库,运行:

> GRANT ALL PRIVILEGES ON test.* to 'dan'@'localhost';

这会赋予用户 dan 对名为 test 的数据库完全操作的权限。我们也可以限定为用户只赋予 SELECTINSERTDELETE 权限。

要赋予访问所有数据库的权限,将 test 替换成 * 。像这样:

> GRANT ALL PRIVILEGES ON *.* to 'dan'@'localhost';

8、备份/导出数据库

要创建单个数据库的备份,在终端窗口中运行下列命令,

$ mysqldump -u root -p database_name>db_backup.sql

若要一次性创建多个数据库的备份则运行:

$ mysqldump -u root -p --databases db1 db2 > db12_backup.sql

要一次性导出多个数据库,则运行:

$ mysqldump -u root -p --all-databases > all_dbs.sql

9、从备份中恢复数据库

要从备份中恢复数据库,运行:

$ mysql -u root -p database_name < db_backup.sql

但这条命令成功的前提是预先没有存在同名的数据库。如果想要恢复数据库数据到已经存在的数据库中,则需要用到 mysqlimport 命令:

$ mysqlimport -u root -p database_name < db_backup.sql

10、更改 MariaDB 用户的密码

本例中我们会修改 root 的密码,但修改其他用户的密码也是一样的过程。

登录 MariaDB 并切换到 'mysql' 数据库:

$ mysql -u root -p
> use mysql;

然后运行下面命令:

> update user set password=PASSWORD('your_new_password_here') where User='root';

下一步,重新加载权限:

> flush privileges;

然后退出会话。

我们的教程至此就结束了,在本教程中我们学习了一些有用的 MariaDB 管理命令。欢迎您的留言。


via: http://linuxtechlab.com/mariadb-administration-commands-beginners/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Yum 是 Centos/RHEL/Fedora 中最重要的工具之一。尽管在 Fedora 的最新版本中,它已经被 DNF 所取代,但这并不意味着它自生自灭了。它仍然被广泛用于安装 rpm 包,我们已经在前面的教程(在这里阅读)中用示例讨论了 Yum。

在本教程中,我们将学习创建一个本地 Yum 仓库,首先使用系统的 ISO 镜像,然后创建一个在线 Yum 仓库的镜像。

用 DVD ISO 创建 Yum

我们在本教程中使用 Centos 7 dvd,同样的过程也应该可以用在 RHEL 7 上。

首先在根文件夹中创建一个名为 Yum 的目录

$ mkdir /YUM

然后挂载 Centos 7 ISO:

$ mount -t iso9660 -o loop /home/dan/Centos-7-x86_x64-DVD.iso /mnt/iso/

接下来,从挂载的 ISO 中复制软件包到 /YUM 中。当所有的软件包都被复制到系统中后,我们将安装创建 Yum 所需的软件包。打开 /YUM 并安装以下 RPM 包:

$ rpm -ivh deltarpm
$ rpm -ivh python-deltarpm
$ rpm -ivh createrepo

安装完成后,我们将在 /etc/yum.repos.d 中创建一个名 为 local.repo 的文件,其中包含所有的 Yum 信息。

$ vi /etc/yum.repos.d/local.repo
LOCAL REPO]
Name=Local YUM
baseurl=file:///YUM
gpgcheck=0
enabled=1

保存并退出文件。接下来,我们将通过运行以下命令来创建仓库数据。

$ createrepo -v /YUM

创建仓库数据需要一些时间。一切完成后,请运行:

$ yum clean all

清理缓存,然后运行:

$ yum repolist

检查所有仓库列表。你应该在列表中看到 local.repo

使用在线仓库创建镜像 Yum 仓库

创建在线 Yum 的过程与使用 ISO 镜像创建 Yum 类似,只是我们将从在线仓库而不是 ISO 中获取 rpm 软件包。

首先,我们需要找到一个在线仓库来获取最新的软件包。建议你找一个离你位置最近的在线 Yum 仓库,以优化下载速度。我们将使用下面的镜像,你可以从 CENTOS 镜像列表中选择一个离你最近的镜像。

选择镜像之后,我们将使用 rsync 将该镜像与我们的系统同步,但在此之前,请确保你服务器上有足够的空间。

$ rsync -avz rsync://mirror.fibergrid.in/centos/7.2/os/x86_64/Packages/s/ /YUM

同步将需要相当长一段时间(也许一个小时),这取决于你互联网的速度。同步完成后,我们将更新我们的仓库数据。

$ createrepo - v /YUM

我们的 Yum 已经可以使用了。我们可以创建一个 cron 任务来根据你的需求每天或每周定时地自动更新仓库数据。

要创建一个用于同步仓库的 cron 任务,请运行:

$ crontab -e

并添加以下行

30 12 * * * rsync -avz http://mirror.centos.org/centos/7/os/x86_64/Packages/ /YUM

这会在每晚 12:30 同步 Yum。还请记住在 /etc/yum.repos.d 中创建仓库配置文件,就像我们上面所做的一样。

就是这样,你现在使用你自己的 Yum 仓库了。如果你喜欢它,请分享这篇文章,并在下面的评论栏留下你的意见/疑问。


via: http://linuxtechlab.com/creating-yum-repository-iso-online-repo/

作者:Shusain 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

早些时候我们已经讨论了一些关于 VI/VIM 编辑器的基础知识,但是 VI 和 VIM 都是非常强大的编辑器,还有很多其他的功能可以和编辑器一起使用。在本教程中,我们将学习 VI/VIM 编辑器的一些高级用法。

推荐阅读使用 VI 编辑器:基础知识

使用 VI/VIM 编辑器打开多个文件

要打开多个文件,命令将与打开单个文件相同。我们只要添加第二个文件的名称。

 $ vi file1 file2 file 3

要浏览到下一个文件,我们可以(在 vim 命令模式中)使用:

:n

或者我们也可以使用

:e filename

在编辑器中运行外部命令

我们可以在 vi 编辑器内部运行外部的 Linux/Unix 命令,也就是说不需要退出编辑器。要在编辑器中运行命令,如果在插入模式下,先返回到命令模式,我们使用 BANG 也就是 ! 接着是需要使用的命令。运行命令的语法是:

:! command

这是一个例子:

:! df -H

根据模板搜索

要在文本文件中搜索一个单词或模板,我们在命令模式下使用以下两个命令:

  • 命令 / 代表正向搜索模板
  • 命令 ? 代表反向搜索模板

这两个命令都用于相同的目的,唯一不同的是它们搜索的方向。一个例子是:

如果在文件的开头向前搜索,

:/ search pattern 

如果在文件末尾向后搜索,

:? search pattern

搜索并替换一个模式

我们可能需要搜索和替换我们的文本中的单词或模式。我们不是从整个文本中找到单词的出现的地方并替换它,我们可以在命令模式中使用命令来自动替换单词。使用搜索和替换的语法是:

:s/pattern_to_be_found/New_pattern/g

假设我们想要将单词 “alpha” 用单词 “beta” 代替,命令就是这样:

:s/alpha/beta/g

如果我们只想替换第一个出现的 “alpha”,那么命令就是:

$ :s/alpha/beta/

使用 set 命令

我们也可以使用 set 命令自定义 vi/vim 编辑器的行为和外观。下面是一些可以使用 set 命令修改 vi/vim 编辑器行为的选项列表:

:set ic  ' 在搜索时忽略大小写

:set smartcase ' 搜索强制区分大小写

:set nu ' 在每行开始显示行号

:set hlsearch ' 高亮显示匹配的单词

:set ro ' 将文件类型更改为只读

:set term ' 打印终端类型

:set ai ' 设置自动缩进

:set noai ' 取消自动缩进

其他一些修改 vi 编辑器的命令是:

:colorscheme ' 用来改变编辑器的配色方案 。(仅适用于 VIM 编辑器)

:syntax on ' 为 .xml、.html 等文件打开颜色方案。(仅适用于VIM编辑器)

这篇结束了本系列教程,请在下面的评论栏中提出你的疑问/问题或建议。


via: http://linuxtechlab.com/working-vivim-editor-advanced-concepts/

作者:Shusain 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Tor 网络是一个用来保护你的互联网以及隐私的匿名网络。Tor 网络是一组志愿者运营的服务器。Tor 通过在由志愿者运营的分布式中继系统之间跳转来保护互联网通信。这避免了人们窥探我们的网络,他们无法了解我们访问的网站或者用户身在何处,并且也可以让我们访问被屏蔽的网站。

在本教程中,我们将学习在各种 Linux 操作系统上安装 Tor 网络,以及如何使用它来配置我们的程序来保护通信。

推荐阅读:如何在 Linux 上安装 Tor 浏览器(Ubuntu、Mint、RHEL、Fedora、CentOS)

CentOS/RHEL/Fedora

Tor 包是 EPEL 仓库的一部分,所以如果我们安装了 EPEL 仓库,我们可以直接使用 yum 来安装 Tor。如果你需要在您的系统上安装 EPEL 仓库,请使用下列适当的命令(基于操作系统和体系结构):

RHEL/CentOS 7:

$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-11.noarch.rpm

RHEL/CentOS 6 (64 位):

$ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

RHEL/CentOS 6 (32 位):

$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

安装完成后,我们可以用下面的命令安装 Tor 浏览器:

$ sudo yum install tor

Ubuntu

为了在 Ubuntu 机器上安装 Tor 网络,我们需要添加官方 Tor 仓库。我们需要将仓库信息添加到 /etc/apt/sources.list 中。

$ sudo nano /etc/apt/sources.list

现在根据你的操作系统添加下面的仓库信息:

Ubuntu 16.04:

deb http://deb.torproject.org/torproject.org xenial main
deb-src http://deb.torproject.org/torproject.org xenial main

Ubuntu 14.04

deb http://deb.torproject.org/torproject.org trusty main
deb-src http://deb.torproject.org/torproject.org trusty main

接下来打开终端并执行以下两个命令添加用于签名软件包的 gpg 密钥:

$ gpg -keyserver keys.gnupg.net -recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
$ gpg -export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

现在运行更新并安装 Tor 网络:

$ sudo apt-get update
$ sudo apt-get install tor deb.torproject.org-keyring

Debian

我们可以无需添加任何仓库在 Debian 上安装 Tor 网络。只要打开终端并以 root 身份执行以下命令:

$ apt install tor

Tor 配置

如果你最终目的只是为了保护互联网浏览,而没有其他要求,直接使用 Tor 更好,但是如果你需要保护即时通信、IRC、Jabber 等程序,则需要配置这些应用程序进行安全通信。但在做之前,让我们先看看Tor 网站上提到的警告

  • 不要大流量使用 Tor
  • 不要在 Tor 中使用任何浏览器插件
  • 只使用 HTTPS 版本的网站
  • 不要在线打开通过 Tor 下载的任何文档。
  • 尽可能使用 Tor 桥

现在配置程序来使用 Tor,例如 jabber。首先选择 “SOCKS代理” 而不是使用 HTTP 代理,并使用端口号 9050,或者也可以使用端口 9150(Tor 浏览器使用)。

install tor network

你也可以配置 Firefox 浏览器使用 Tor 网络。打开 Firefox 浏览器,在“常规”选项卡的“首选项”中进入“网络代理”设置,并按以下步骤输入代理:

install tor network

现在你可以在 Firefox 中使用 Tor 网络完全匿名访问了。

这就是我们如何安装 Tor 网络并使用 Tor 浏览互联网的教程。请在下面的评论栏中提出你的问题和建议。


via: http://linuxtechlab.com/learn-install-tor-network-linux/

作者:Shusain 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出