CentOS 7 安裝 MySQL

CentOS 7 安裝 MySQL

http://waylau.com/centos-7-install-mysql/php

環境

  • CentOS 7.1 (64-bit system)
  • MySQL 5.6.24

CentOS 安裝

參考:http://www.waylau.com/centos-7-installation-and-configuration/css

依賴

MySQL 依賴 libaio,因此先要安裝 libaio

yum search libaio # 檢索相關信息 yum install libaio # 安裝依賴包 

成功安裝,提示以下:html

[root@bogon /]# yum install libaio 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.163.com * updates: mirrors.163.com 軟件包 libaio-0.3.109-12.el7.x86_64 已安裝而且是最新版本 無須任何處理 

檢查 MySQL 是否已安裝

yum list installed | grep mysql 

若是有,就先所有卸載,命令以下:node

yum -y remove mysql-libs.x86_64 

如有多個依賴文件則依次卸載。當結果顯示爲 Complete!即卸載完畢。mysql

下載

下載 MySQL Yum Repository

地址爲 http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmlinux

執行nginx

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 

若是提示-bash: wget: 未找到命令,請先執行 yum install wget 安裝 wgetgit

安裝

添加 MySQL Yum Repository

添加 MySQL Yum Repository 到你的系統 repository 列表中,執行sql

yum localinstall mysql-community-release-el7-5.noarch.rpm 

顯示shell

[root@bogon software]# yum localinstall mysql-community-release-el7-5.noarch.rpm 已加載插件:fastestmirror 正在檢查 mysql-community-release-el7-5.noarch.rpm: mysql-community-release-el7-5.noarch mysql-community-release-el7-5.noarch.rpm 將被安裝 正在解決依賴關係 --> 正在檢查事務 ---> 軟件包 mysql-community-release.noarch.0.el7-5 將被 安裝 --> 解決依賴關係完成 依賴關係解決 ================================================================================ Package 架構 版本 源 大小 ================================================================================ 正在安裝: mysql-community-release noarch el7-5 /mysql-community-release-el7-5.noarch 4.3 k 事務概要 ================================================================================ 安裝 1 軟件包 總計:4.3 k 安裝大小:4.3 k Is this ok [y/d/N] 

提示是否 OK ,輸入 y

Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : mysql-community-release-el7-5.noarch 1/1 驗證中 : mysql-community-release-el7-5.noarch 1/1 已安裝: mysql-community-release.noarch 0:el7-5 完畢! 

提示「完成!」,則說明 源添加成功。

驗證下是否添加成功

yum repolist enabled | grep "mysql.*-community.*" 

能夠看到下面內:

[root@bogon software]# yum repolist enabled | grep "mysql.*-community.*" mysql-connectors-community/x86_64 MySQL Connectors Community 1 mysql-tools-community/x86_64 MySQL Tools Community 1 mysql56-community/x86_64 MySQL 5.6 Community Server 13 

選擇要啓用 MySQL 版本

查看 MySQL 版本,執行

yum repolist all | grep mysql 

能夠看到 5.5, 5.7 版本是默認禁用的,由於如今最新的穩定版是 5.6

[root@bogon software]# yum repolist all | grep mysql mysql-connectors-community/x86_64 MySQL Connectors Community 啓用: 14 mysql-connectors-community-source MySQL Connectors Community - Sourc 禁用 mysql-tools-community/x86_64 MySQL Tools Community 啓用: 17 mysql-tools-community-source MySQL Tools Community - Source 禁用 mysql55-community/x86_64 MySQL 5.5 Community Server 禁用 mysql55-community-source MySQL 5.5 Community Server - Sourc 禁用 mysql56-community/x86_64 MySQL 5.6 Community Server 啓用: 139 mysql56-community-source MySQL 5.6 Community Server - Sourc 禁用 mysql57-community-dmr/x86_64 MySQL 5.7 Community Server Develop 禁用 mysql57-community-dmr-source MySQL 5.7 Community Server Develop 禁用 

能夠經過相似下面的語句來啓動某些版本

yum-config-manager --disable mysql56-community yum-config-manager --enable mysql57-community-dmr 

或者經過修改 /etc/yum.repos.d/mysql-community.repo 文件

# Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 

其中 enabled=0 是指禁用,enabled=1 指啓用。

注意: 任什麼時候候,只能啓用一個版本。

執行

yum repolist enabled | grep mysql 

查看當前的啓動的 MySQL 版本

[root@bogon software]# yum repolist enabled | grep mysql mysql-connectors-community/x86_64 MySQL Connectors Community 14 mysql-tools-community/x86_64 MySQL Tools Community 17 mysql56-community/x86_64 MySQL 5.6 Community Server 139 

本例,咱們啓用的是 5.6 版本。

經過 Yum 來安裝 MySQL

執行

yum install mysql-community-server 

Yum 會自動處理 MySQL 與其餘組件的依賴關係:

[root@bogon software]#  yum install mysql-community-server 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.163.com * updates: mirrors.163.com 正在解決依賴關係 --> 正在檢查事務 ---> 軟件包 mysql-community-server.x86_64.0.5.6.24-3.el7 將被 安裝 --> 正在處理依賴關係 mysql-community-common(x86-64) = 5.6.24-3.el7,它被軟件包 m ysql-community-server-5.6.24-3.el7.x86_64 須要 --> 正在處理依賴關係 mysql-community-client(x86-64) = 5.6.24-3.el7,它被軟件包 m ysql-community-server-5.6.24-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(warnings),它被軟件包 mysql-community-server-5.6.24-3. el7.x86_64 須要 --> 正在處理依賴關係 perl(strict),它被軟件包 mysql-community-server-5.6.24-3.el 7.x86_64 須要 --> 正在處理依賴關係 perl(if),它被軟件包 mysql-community-server-5.6.24-3.el7.x8 6_64 須要 --> 正在處理依賴關係 perl(Sys::Hostname),它被軟件包 mysql-community-server-5.6. 24-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(POSIX),它被軟件包 mysql-community-server-5.6.24-3.el7 .x86_64 須要 --> 正在處理依賴關係 perl(Getopt::Long),它被軟件包 mysql-community-server-5.6.2 4-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(File::Temp),它被軟件包 mysql-community-server-5.6.24- 3.el7.x86_64 須要 --> 正在處理依賴關係 perl(File::Spec),它被軟件包 mysql-community-server-5.6.24- 3.el7.x86_64 須要 --> 正在處理依賴關係 perl(File::Path),它被軟件包 mysql-community-server-5.6.24- 3.el7.x86_64 須要 --> 正在處理依賴關係 perl(File::Copy),它被軟件包 mysql-community-server-5.6.24- 3.el7.x86_64 須要 --> 正在處理依賴關係 perl(File::Basename),它被軟件包 mysql-community-server-5.6 .24-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(Fcntl),它被軟件包 mysql-community-server-5.6.24-3.el7 .x86_64 須要 --> 正在處理依賴關係 perl(Data::Dumper),它被軟件包 mysql-community-server-5.6.2 4-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(DBI),它被軟件包 mysql-community-server-5.6.24-3.el7.x 86_64 須要 --> 正在處理依賴關係 net-tools,它被軟件包 mysql-community-server-5.6.24-3.el7.x 86_64 須要 --> 正在處理依賴關係 /usr/bin/perl,它被軟件包 mysql-community-server-5.6.24-3.e l7.x86_64 須要 --> 正在檢查事務 ---> 軟件包 mysql-community-client.x86_64.0.5.6.24-3.el7 將被 安裝 --> 正在處理依賴關係 mysql-community-libs(x86-64) = 5.6.24-3.el7,它被軟件包 mys ql-community-client-5.6.24-3.el7.x86_64 須要 --> 正在處理依賴關係 perl(Exporter),它被軟件包 mysql-community-client-5.6.24-3. el7.x86_64 須要 ---> 軟件包 mysql-community-common.x86_64.0.5.6.24-3.el7 將被 安裝 ---> 軟件包 net-tools.x86_64.0.2.0-0.17.20131004git.el7 將被 安裝 ---> 軟件包 perl.x86_64.4.5.16.3-285.el7 將被 安裝 --> 正在處理依賴關係 perl-libs = 4:5.16.3-285.el7,它被軟件包 4:perl-5.16.3-285. el7.x86_64 須要 --> 正在處理依賴關係 perl(Socket) >= 1.3,它被軟件包 4:perl-5.16.3-285.el7.x86_6 4 須要 --> 正在處理依賴關係 perl(Scalar::Util) >= 1.10,它被軟件包 4:perl-5.16.3-285.el 7.x86_64 須要 --> 正在處理依賴關係 perl-macros,它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl-libs,它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(threads::shared),它被軟件包 4:perl-5.16.3-285.el7.x86 _64 須要 --> 正在處理依賴關係 perl(threads),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(constant),它被軟件包 4:perl-5.16.3-285.el7.x86_64 需 要 --> 正在處理依賴關係 perl(Time::Local),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(Time::HiRes),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(Storable),它被軟件包 4:perl-5.16.3-285.el7.x86_64 需 要 --> 正在處理依賴關係 perl(Socket),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(Scalar::Util),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 perl(Pod::Simple::XHTML),它被軟件包 4:perl-5.16.3-285.el7. x86_64 須要 --> 正在處理依賴關係 perl(Pod::Simple::Search),它被軟件包 4:perl-5.16.3-285.el7 .x86_64 須要 --> 正在處理依賴關係 perl(Filter::Util::Call),它被軟件包 4:perl-5.16.3-285.el7. x86_64 須要 --> 正在處理依賴關係 perl(Carp),它被軟件包 4:perl-5.16.3-285.el7.x86_64 須要 --> 正在處理依賴關係 libperl.so()(64bit),它被軟件包 4:perl-5.16.3-285.el7.x86_6 4 須要 ---> 軟件包 perl-DBI.x86_64.0.1.627-4.el7 將被 安裝 --> 正在處理依賴關係 perl(RPC::PlServer) >= 0.2001,它被軟件包 perl-DBI-1.627-4. el7.x86_64 須要 --> 正在處理依賴關係 perl(RPC::PlClient) >= 0.2000,它被軟件包 perl-DBI-1.627-4. el7.x86_64 須要 ---> 軟件包 perl-Data-Dumper.x86_64.0.2.145-3.el7 將被 安裝 ---> 軟件包 perl-File-Path.noarch.0.2.09-2.el7 將被 安裝 ---> 軟件包 perl-File-Temp.noarch.0.0.23.01-3.el7 將被 安裝 ---> 軟件包 perl-Getopt-Long.noarch.0.2.40-2.el7 將被 安裝 --> 正在處理依賴關係 perl(Pod::Usage) >= 1.14,它被軟件包 perl-Getopt-Long-2.40- 2.el7.noarch 須要 --> 正在處理依賴關係 perl(Text::ParseWords),它被軟件包 perl-Getopt-Long-2.40-2. el7.noarch 須要 ---> 軟件包 perl-PathTools.x86_64.0.3.40-5.el7 將被 安裝 --> 正在檢查事務 ---> 軟件包 mariadb-libs.x86_64.1.5.5.41-2.el7_0 將被 取代 ---> 軟件包 mysql-community-libs.x86_64.0.5.6.24-3.el7 將被 捨棄 ---> 軟件包 perl-Carp.noarch.0.1.26-244.el7 將被 安裝 ---> 軟件包 perl-Exporter.noarch.0.5.68-3.el7 將被 安裝 ---> 軟件包 perl-Filter.x86_64.0.1.49-3.el7 將被 安裝 ---> 軟件包 perl-PlRPC.noarch.0.0.2020-14.el7 將被 安裝 --> 正在處理依賴關係 perl(Net::Daemon) >= 0.13,它被軟件包 perl-PlRPC-0.2020-14. el7.noarch 須要 --> 正在處理依賴關係 perl(Net::Daemon::Test),它被軟件包 perl-PlRPC-0.2020-14.el 7.noarch 須要 --> 正在處理依賴關係 perl(Net::Daemon::Log),它被軟件包 perl-PlRPC-0.2020-14.el7 .noarch 須要 --> 正在處理依賴關係 perl(Compress::Zlib),它被軟件包 perl-PlRPC-0.2020-14.el7.n oarch 須要 ---> 軟件包 perl-Pod-Simple.noarch.1.3.28-4.el7 將被 安裝 --> 正在處理依賴關係 perl(Pod::Escapes) >= 1.04,它被軟件包 1:perl-Pod-Simple-3. 28-4.el7.noarch 須要 --> 正在處理依賴關係 perl(Encode),它被軟件包 1:perl-Pod-Simple-3.28-4.el7.noarc h 須要 ---> 軟件包 perl-Pod-Usage.noarch.0.1.63-3.el7 將被 安裝 --> 正在處理依賴關係 perl(Pod::Text) >= 3.15,它被軟件包 perl-Pod-Usage-1.63-3.e l7.noarch 須要 --> 正在處理依賴關係 perl-Pod-Perldoc,它被軟件包 perl-Pod-Usage-1.63-3.el7.noar ch 須要 ---> 軟件包 perl-Scalar-List-Utils.x86_64.0.1.27-248.el7 將被 安裝 ---> 軟件包 perl-Socket.x86_64.0.2.010-3.el7 將被 安裝 ---> 軟件包 perl-Storable.x86_64.0.2.45-3.el7 將被 安裝 ---> 軟件包 perl-Text-ParseWords.noarch.0.3.29-4.el7 將被 安裝 ---> 軟件包 perl-Time-HiRes.x86_64.4.1.9725-3.el7 將被 安裝 ---> 軟件包 perl-Time-Local.noarch.0.1.2300-2.el7 將被 安裝 ---> 軟件包 perl-constant.noarch.0.1.27-2.el7 將被 安裝 ---> 軟件包 perl-libs.x86_64.4.5.16.3-285.el7 將被 安裝 ---> 軟件包 perl-macros.x86_64.4.5.16.3-285.el7 將被 安裝 ---> 軟件包 perl-threads.x86_64.0.1.87-4.el7 將被 安裝 ---> 軟件包 perl-threads-shared.x86_64.0.1.43-6.el7 將被 安裝 --> 正在檢查事務 ---> 軟件包 perl-Encode.x86_64.0.2.51-7.el7 將被 安裝 ---> 軟件包 perl-IO-Compress.noarch.0.2.061-2.el7 將被 安裝 --> 正在處理依賴關係 perl(Compress::Raw::Zlib) >= 2.061,它被軟件包 perl-IO-Comp ress-2.061-2.el7.noarch 須要 --> 正在處理依賴關係 perl(Compress::Raw::Bzip2) >= 2.061,它被軟件包 perl-IO-Com press-2.061-2.el7.noarch 須要 ---> 軟件包 perl-Net-Daemon.noarch.0.0.48-5.el7 將被 安裝 ---> 軟件包 perl-Pod-Escapes.noarch.1.1.04-285.el7 將被 安裝 ---> 軟件包 perl-Pod-Perldoc.noarch.0.3.20-4.el7 將被 安裝 --> 正在處理依賴關係 perl(parent),它被軟件包 perl-Pod-Perldoc-3.20-4.el7.noarch 須要 --> 正在處理依賴關係 perl(HTTP::Tiny),它被軟件包 perl-Pod-Perldoc-3.20-4.el7.no arch 須要 ---> 軟件包 perl-podlators.noarch.0.2.5.1-3.el7 將被 安裝 --> 正在檢查事務 ---> 軟件包 perl-Compress-Raw-Bzip2.x86_64.0.2.061-3.el7 將被 安裝 ---> 軟件包 perl-Compress-Raw-Zlib.x86_64.1.2.061-4.el7 將被 安裝 ---> 軟件包 perl-HTTP-Tiny.noarch.0.0.033-3.el7 將被 安裝 ---> 軟件包 perl-parent.noarch.1.0.225-244.el7 將被 安裝 --> 解決依賴關係完成 依賴關係解決 ================================================================================ Package 架構 版本 源 大小 ================================================================================ 正在安裝: mysql-community-libs x86_64 5.6.24-3.el7 mysql56-community 2.0 M 替換 mariadb-libs.x86_64 1:5.5.41-2.el7_0 mysql-community-server x86_64 5.6.24-3.el7 mysql56-community 58 M 爲依賴而安裝: mysql-community-client x86_64 5.6.24-3.el7 mysql56-community 19 M mysql-community-common x86_64 5.6.24-3.el7 mysql56-community 256 k net-tools x86_64 2.0-0.17.20131004git.el7 base 304 k perl x86_64 4:5.16.3-285.el7 base 8.0 M perl-Carp noarch 1.26-244.el7 base 19 k perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k perl-DBI x86_64 1.627-4.el7 base 802 k perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-Encode x86_64 2.51-7.el7 base 1.5 M perl-Exporter noarch 5.68-3.el7 base 28 k perl-File-Path noarch 2.09-2.el7 base 26 k perl-File-Temp noarch 0.23.01-3.el7 base 56 k perl-Filter x86_64 1.49-3.el7 base 76 k perl-Getopt-Long noarch 2.40-2.el7 base 56 k perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k perl-IO-Compress noarch 2.061-2.el7 base 260 k perl-Net-Daemon noarch 0.48-5.el7 base 51 k perl-PathTools x86_64 3.40-5.el7 base 82 k perl-PlRPC noarch 0.2020-14.el7 base 36 k perl-Pod-Escapes noarch 1:1.04-285.el7 base 50 k perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k perl-Pod-Usage noarch 1.63-3.el7 base 27 k perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k perl-Socket x86_64 2.010-3.el7 base 49 k perl-Storable x86_64 2.45-3.el7 base 77 k perl-Text-ParseWords noarch 3.29-4.el7 base 14 k perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k perl-Time-Local noarch 1.2300-2.el7 base 24 k perl-constant noarch 1.27-2.el7 base 19 k perl-libs x86_64 4:5.16.3-285.el7 base 687 k perl-macros x86_64 4:5.16.3-285.el7 base 42 k perl-parent noarch 1:0.225-244.el7 base 12 k perl-podlators noarch 2.5.1-3.el7 base 112 k perl-threads x86_64 1.87-4.el7 base 49 k perl-threads-shared x86_64 1.43-6.el7 base 39 k 事務概要 ================================================================================ 安裝 2 軟件包 (+37 依賴軟件包) 總下載量:92 M Is this ok [y/d/N]: 

輸入 y 繼續下載相關文件;

-------------------------------------------------------------------------------- 總計 1.1 MB/s | 92 MB 01:24 從 file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 檢索密鑰 導入 GPG key 0x5072E1F5: 用戶ID : "MySQL Release Engineering <mysql-build@oss.oracle.com>" 指紋 : a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5 軟件包 : mysql-community-release-el7-5.noarch (@/mysql-community-release-el7-5.noarch) 來自 : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 是否繼續?[y/N]: 

遇到上述提示,輸入 y 繼續,執行完成會提示「完畢!」。此時MySQL 安裝完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四個包。

執行

rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7 

執行

whereis mysql 

能夠看到 MySQL 的安裝目錄是 /usr/bin/

[root@localhost ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz 

啓動和關閉 MySQL Server

啓動 MySQL Server

systemctl start mysqld 

查看 MySQL Server 狀態

systemctl status mysqld 

關閉 MySQL Server

systemctl stop mysqld 

測試是否安裝成功

mysql 

能夠進入 mysql 命令行界面

[root@bogon software]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.24 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 

防火牆設置

遠程訪問 MySQL, 需開放默認端口號 3306.

方式1:iptables(CentOS 7.x版本以前用法,不推薦)

打開 iptables 的配置文件:

vi /etc/sysconfig/iptables 

修改

*filter
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT 

在裏面加入這2行:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 3306 -j ACCEPT 

改成

*filter
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT 

若是該 iptables 配置文件 不存在,先執行 yum install iptables-services 安裝

執行 iptables 重啓生效

service iptables restart 

方式2:firewall-cmd(推薦)

執行

firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --permanent --zone=public --add-port=3306/udp 

這樣就開放了相應的端口。

執行

firewall-cmd --reload 

使最新的防火牆設置規則生效。

MySQL 安全設置

服務器啓動後,能夠執行

mysql_secure_installation;

看到以下提示

[root@bogon software]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): 

此時輸入 root 原始密碼(初始化安裝的話爲空),接下來,爲了安全,MySQL 會提示你重置 root 密碼,移除其餘用戶帳號,禁用 root 遠程登陸,移除 test 數據庫,從新加載 privilege 表格等,你只需輸入 y 繼續執行便可。

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist ... Failed! Not critical, keep moving... - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! Cleaning up... 

至此,整個 MySQL 安裝完成。

遠程訪問設置

建立一個普通用戶 sa ,密碼是 some_pass

CREATE USER 'sa'@'%' IDENTIFIED BY 'some_pass'; 

給這個用戶授予 SELECT,INSERT,UPDATE,DELETE 的遠程訪問的權限,這個帳號通常用於提供給實施的系統訪問

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%'; 

建立一個管理員用戶 admin 帳號 ,密碼是 some_pass

CREATE USER 'admin'@'%' IDENTIFIED BY 'some_pass'; 

給這個用戶授予全部的遠程訪問的權限。這個用戶主要用於管理整個數據庫、備份、還原等操做。

GRANT ALL ON *.* TO 'admin'@'%'; 

使受權馬上生效

flush privileges; 

更改數據存放目錄

建立數據存放目錄

home 目錄下創建 data 目錄

mkdir /home/data 

把 MySQL 服務進程停掉

若是 MySQL 是啓動的,要先關閉

mysqladmin -u root -p shutdown 

移動數據到數據存放目錄

/var/lib/mysql 整個目錄移到 /home/data,執行

mv /var/lib/mysql /home/data 

這樣就把 MySQL 的數據文件移動到了 /home/data/mysql 下

修改 /etc/my.cnf 文件,

[mysqld] datadir=/home/data/mysql socket=/home/data/mysql/mysql.sock  [mysql] socket=/home/data/mysql/mysql.sock 

修改權限

chown -R mysql:mysql /home/data/mysql 

重啓後,若是不能啓動 MySQL 服務,執行

vi /etc/sysconfig/selinux 

調整

SELINUX=permissive 

保存設置,執行 reboot 重啓生效

開機自起

查看 MySQL 服務是否開機啓動

[root@localhost ~]# systemctl is-enabled mysql.service;echo $? enabled 0 

若是是 enabled 則說明是開機自動,若是不是,執行

chkconfig --levels 235 mysqld on 

設置字符集

通常的,爲了支持中文,咱們應該講字符集設爲 UTF-8, 執行

SHOW VARIABLES LIKE 'character%'; 

查看當前 MySQL 字符集

mysql>  SHOW VARIABLES LIKE 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) 

能夠看到默認服務器的字符器是 latin1 ,對中文不友好。
修改 /etc/my.cnf 文件,添加字符集的設置

[mysqld] character_set_server = utf8  [mysql] default-character-set = utf8 

重啓 MySQL ,能夠看到字符集已經修改了

mysql> SHOW VARIABLES LIKE 'character%' -> ; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) 

其餘經常使用配置配置

調整 MySQL 運行參數,修改 /etc/my.cnf 文件,經常使用配置以下:

[mysqld]   
basedir      = path          # 使用給定目錄做爲根目錄(安裝目錄)。
datadir      = path          # 從給定目錄讀取數據庫文件。
pid-file     = filename      # 爲mysqld程序指定一個存放進程ID的文件(僅適用於UNIX/Linux系統); socket = /tmp/mysql.sock # 爲MySQL客戶程序與服務器之間的本地通訊指定一個套接字文件(Linux下默認是/var/lib/mysql/mysql.sock文件) port = 3306 # 指定MsSQL偵聽的端口 key_buffer = 384M # key_buffer是用於索引塊的緩衝區大小,增長它可獲得更好處理的索引(對全部讀和多重寫)。 索引塊是緩衝的而且被全部的線程共享,key_buffer的大小視內存大小而定。 table_cache = 512 # 爲全部線程打開表的數量。增長該值能增長mysqld要求的文件描述符的數量。能夠避免頻繁的打開數據表產生的開銷 sort_buffer_size = 2M # 每一個須要進行排序的線程分配該大小的一個緩衝區。增長這值加速ORDER BY或GROUP BY操做。 注意:該參數對應的分配內存是每鏈接獨佔!若是有100個鏈接,那麼實際分配的總共排序緩衝區大小爲100×6=600MB read_buffer_size = 2M # 讀查詢操做所能使用的緩衝區大小。和sort_buffer_size同樣,該參數對應的分配內存也是每鏈接獨享。 query_cache_size = 32M # 指定MySQL查詢結果緩衝區的大小 read_rnd_buffer_size = 8M # 改參數在使用行指針排序以後,隨機讀用的。 myisam_sort_buffer_size =64M # MyISAM表發生變化時從新排序所需的緩衝 thread_concurrency = 8 # 最大併發線程數,取值爲服務器邏輯CPU數量×2,若是CPU支持H.T超線程,再×2 thread_cache = 8 # #緩存可重用的線程數 skip-locking # 避免MySQL的外部鎖定,減小出錯概率加強穩定性。 [mysqldump] max_allowed_packet =16M # 服務器和客戶端之間最大能發送的可能信息包 [myisamchk] key_buffer = 256M sort_buffer = 256M read_buffer = 2M write_buffer = 2M 

其餘可選參數:

back_log = 384

指定MySQL可能的鏈接數量。 當MySQL主線程在很短期內接收到很是多的鏈接請求,該參數生效,主線程花費很短期檢查鏈接而且啓動一個新線程。 back_log參數的值指出在MySQL暫時中止響應新請求以前的短期內多少個請求能夠被存在堆棧中。 若是系統在一個短期內有不少鏈接,則須要增大該參數的值,該參數值指定到來的TCP/IP鏈接的偵聽隊列的大小。 試圖設定back_log高於你的操做系統的限制將是無效的。默認值爲50。對於Linux系統推薦設置爲小於512的整數。

max_connections = n

MySQL服務器同時處理的數據庫鏈接的最大數量(默認設置是100)。超過限制後會報 Too many connections 錯誤

key_buffer_size = n

用來存放索引區塊的RMA值(默認設置是8M),增長它可獲得更好處理的索引(對全部讀和多重寫)

record_buffer:

每一個進行一個順序掃描的線程爲其掃描的每張表分配這個大小的一個緩衝區。 若是你作不少順序掃描,你可能想要增長該值。默認數值是131072(128K)

wait_timeout:

服務器在關閉它以前在一個鏈接上等待行動的秒數。

interactive_timeout:

服務器在關閉它前在一個交互鏈接上等待行動的秒數。 一個交互的客戶被定義爲對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。 默認數值是28800,能夠把它改成3600。

skip-name-resolve

禁止MySQL對外部鏈接進行DNS解析,使用這一選項能夠消除MySQL進行DNS解析的時間。 但須要注意,若是開啓該選項,則全部遠程主機鏈接受權都要使用IP地址方式,不然MySQL將沒法正常處理鏈接請求!

log-slow-queries = slow.log

記錄慢查詢,而後對慢查詢一一優化

skip-innodb

skip-bdb

關閉不須要的表類型,若是你須要,就不要加上這個

備份、還原

方法1:命令行

備份

mysqldump --socket=/home/data/mysql/mysql.sock --single-transaction=TRUE -u root -p emsc > emsc.sql 

還原

mysql --socket=/home/data/mysql/mysql.sock -u root -p emsc < emsc.sql 

方法2:Workbench

備份

還原

參考

 

 

centos6.5離線安裝mysql

一、查看是否已安裝mysql

rpm -qa | grep -i mysql

 

二、若是有,先卸載,若是不卸載,MySQL-server會安裝失敗,沒有的話直接跳到第3步

使用rpm -e --nodeps 命令強制卸載:

rpm -e --nodeps mysql-libs-5.1.61-4.el6.i686
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否還有mysql軟件:
rpm -qa|grep mysql
有的話繼續卸載刪除

 

三、下載mysql離線安裝包

地址:http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar

可使用wget命令直接下載。

 

四、解壓

tar -xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar

 

五、安裝

在RHEL系統中,必須先安裝「MySQL-shared-compat-5.6.26-1.el6.i686.rpm」這個兼容包,而後才能安裝server和client,不然安裝時會出錯。

rpm -ivh MySQL-shared-compat-5.6.26-1.linux_glibc2.5.x86_64.rpm  # RHEL兼容包
rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm        # MySQL服務端程序
rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm        # MySQL客戶端程序
rpm -ivh MySQL-devel-5.6.26-1.linux_glibc2.5.x86_64.rpm         # MySQL的庫和頭文件
rpm -ivh MySQL-shared-5.6.26-1.linux_glibc2.5.x86_64.rpm        # MySQL的共享庫


六、配置

配置MySQL登陸密碼

cat /root/.mysql_secret  # 獲取MySQL安裝時生成的隨機密碼
service mysql start      # 啓動MySQL服務
mysql_secure_installation;修改密碼mysql -uroot -p          # 進入MySQL,使用以前獲取的隨機密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');  # 在MySQL命令行中設置root帳戶的密碼爲password
quit  # 退出MySQL命令行
service mysql restart  # 從新啓動MySQL服務
相關文章
相關標籤/搜索