Posts Tagged ‘ Linux

CentOS 如何加入第三方 Yum 套件库: EPEL

EPEL 的全称为“Extra Packages for Enterprise Linux”,是由 Fedora 社群打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux、Rocky Linux、Oracle Linux...等提供高品质套件库的专案。装了 EPEL 之后,等于添加了一个资源丰富的第三方套件库。

Read more

[MySQL]数据库的备份与还原

数据库汇出/备份

1. 备份单一数据库:

$ mysqldump -u Username -p --opt DatabaseName > Backup.sql

2. 仅备份特定数据库下的资料表:

$ mysqldump -u Username -p --opt DatabaseName Table1 Table2... > Backup.sql

3. 仅汇出资料表结构:

$ mysqldump -u Username -p --opt --no-data DatabaseName > Backup.sql

4. 备份全部的数据库:

$ mysqldump -u Username -p -A --opt > AllBackup.sql

mysql/mysqldump/mysqladmin 与“登入”有关的参数说明:

  • -u Username: 用来存取 mysql 资料表的用户名称。此参数可省略,若省略,则表示为目前登入 linux 的用户名称。
  • -p: 于执行时再询问密码。
  • -pPassword: 用来存取 mysql 资料表的密码,-p 与 Password 的中间不可有空格。

数据库汇入/还原

1. 建立数据库,再从备份档汇入单一数据库:

$ mysqladmin -u Username -p create DatabaseName
$ mysql -u Username -p DatabaseName < Backup.sql

2. 从备份档汇入全部的数据库 (不需先建立数据库):

$ mysql -u Username -p < AllBackup.sql

状况处理:

状况 1.

汇入数据库时出现错误讯息: Unknown collation: 'utf8mb4_unicode_ci' Unknown collation: 'utf8mb4_unicode_520_ci'

说明:

MySQL 于 v5.5.3 版之后才有“utf8mb4”的编码格式。原本 utf8 的最大编码长度为 3bytes,而 utf8mb4 的最大编码长度为 4bytes,因此它比 utf8 可以储存更多的字符。但是以常用的文字来讲,utf8 已经完全足够使用了。若不升级 MySQL Server,则只须将汇入的字符编码格式改为原本的 utf8。

解决方法:

先将备份档中的 utf8mb4 字串替换成 utf8: (以下的三行指令需依照顺序执行)

$ sed -i 's/utf8mb4_unicode_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4/utf8/g' Backup.sql

全部替换完再进行汇入:

$ mysql -u Username -p DatabaseName < Backup.sql

状况 2.

以 mysqldump 汇出数据库时出现错误讯息: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'test' when using LOCK TABLES

说明:

这错误讯息已说明了用来执行 mysqldump 的帐号没有“LOCK TABLES”权限! 通常用 root 帐号汇出数据库不会发生这个问题,因为我们会给 root 所有的权限。然而我们在设定其它帐号时可能会忘了给它设定“LOCK TABLES”权限,而执行 mysqldump 至少需要“SELECT”与“LOCK TABLES”权限才行,最好再加上“SHOW VIEW”、“EVENT”与“TRIGGER”。

解决方法:

重新授予用户权限:

grant SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER on *.* to 'backup'@'localhost' identified by '{Password}';
flush privileges;

状况 3.

从 cpanel 下载的 MySQL 档案格式为 *.gz,可以用 gunzip 解压缩:

$ gunzip Backup.sql.gz

注意: 使用 gunzip 解压缩后,原本的 *.gz 会被删除!!若要保留旧档,须改用下列指令:

 $ gunzip -c Backup.sql.gz > Backup.sql

数据库离线备份/还原

MySQL 的数据库放在 /var/lib/mysql 下,以数据库的名称做为目录的名称。直接将 /var/lib/mysql 下的数据库目录用 tar 指令个别压缩起来即可做为备份。要还原再把档案解压缩回去。

要以这种方式执行备份与还原都必须先停止 MySQL 的服务:

$ service mysqld stop

参考网页

修复 Linux 开机出现档案系统有不一致性 (UNEXPECTED INCONSISTENCY) 的错误问题

Linux 无法正常开机,出现错误讯息:

Checking filesystems

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
         (i.e., without -a or -p options)
                                                  [FAILED]

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue):

错误讯息指出 /dev/sda1 分割区有不一致性的问题!!

Read more

Linux 电子邮件防毒: ClamAV + Sendmail

本文要介绍的 Linux 的 E-Mail 防毒主要由两个套件组成: clamav 与 clamav-milter。

其中“clamav”是防毒软件、“clamav-milter”是 clamav 用来与 sendmail 整合的扫毒程式。

Read more

如何检测 logrotate 的错误

logrotate 的主要功能是将旧的 log 档改档名,并建立一个新的档案来让 syslog 存放新的 log。

错误状况

我的 Linux 系统都有持续在写入 log,但是单一的 log 档档案过大,表示已经有几个月没有执行 logrotate 了! 因此研判 syslog 的功能是正常的,可能是 logrotate 的运作出了问题。

Read more

CentOS 6.x 安装 nslookup 的步骤 (与 yum 如何查询套件)

Linode VPS 布署的 CentOS 6.x 已经没有 nslookup 这个工具程式了!!

以下将借由安装 nslookup 的同时,顺便也复习一下 yum 的查询套件功能...

Read more

Linux 站长请检测您的网站是否有 OpenSSL 的 Heartbleed 严重漏洞

OpenSSL Heartbleed 漏洞

Linux 站长请检测您的网站是否有 OpenSSLHeartbleed 严重漏洞,此漏洞会造成加密的封包在网络上被截取:

  • OpenSSL 影响版本: 1.0.1 ~ 1.0.1f / 1.0.2-beta ~ 1.0.2-beta1
  • OpenSSL 修复版本: 1.0.1g / 1.0.2-beta2

检测方法

至“Test your server for Heartbleed”输入你的网站网址做检测。

参考网页

 

Linode VPS 磁盘容量加倍与扩充方法

Linode VPS 自从四月的“内存容量加倍”的优惠升级之后,最近又有新的惊喜了,Linode 干脆就来个“磁盘容量加倍”免费大放送,每个方案的磁盘容量都加倍,人人都有奖,不过要去领取才行。


Read more

iptables 封锁的指令与简单的封锁程式

安装了一台新的 Linux Server,有个来自中国的 IP“218.25.253.100”连续好几天一直在尝试以 ssh 登入我的 Server,虽然我也装了 fail2ban,不过只设三个小时的封锁时间,所以每天会看到 fail2ban 告诉我这个 IP 被封锁了 n 次!!看了很烦,所以直接用 iptables 把它给封锁了。
Read more

CentOS 5/6 快速安装 VPN Server (PPTP)

“VPN”是一种常用于中、大型企业或团体与团体间的私人网络的通讯方法。借由 VPN 所建立的加密通道,可以让你从外部存取公司内部的资源,或透过连线到 VPN 的 Server 当跳板,去存取被限制的外部资源 (俗称“翻墙”)。

在使用 VPN 之前,你得先有一台提供服务的 VPN Server,现在满多人会去租用国外的 VPS 当 Server,要架站兼翻墙,Linode 是不错的选择。

以下把握几个重点即可快速完成 Linux 的 PPTP 的 VPN Server 架设:

  • PPP - 点对点协定 (Point-to-Point Protocol)
  • PPTP - 点对点通道协定 (Point-to-Point Tunneling Protocol)
  • iptables - 设定封包转发规则

安装步骤

1. 判断 ppp 是否可用:

$ cat /dev/ppp
cat: /dev/ppp: No such device or address

如果出现跟上面一样的讯息“No such device or address”,那不用担心,这表示 ppp 是可用的,可以正常架设 pptp。

如果出现的是“Permission denied”,表示 ppp 是关闭的,下面的步骤就可以不用再看了。
Read more

return top