出於學習目的選擇最小安裝php
[root@localhost ~]# hostnamectl --static set-hostname centos7 [root@localhost ~]# reboot
Linux 操做系統的網卡設備的傳統命名方式是 eth0、eth一、eth2等,而 CentOS7提供了不一樣的命名規則,默認是基於固件、拓撲、位置信息來分配。這樣作的優勢是命名全自動的、可預知的,缺點是比 eth0、wlan0 更難讀,好比 ens33 。
CentOS 7 默認是不啓動網卡,編輯網卡配置 使「ONBOOT = YES」,重啓網絡服務html
[root@centos7 ~]# ip addr [root@centos7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 [root@centos7 ~]# systemctl restart network
Secure Shell(安全外殼協議,簡稱SSH)是一種加密的網絡傳輸協議,可在不安全的網絡中爲網絡服務提供安全的傳輸環境
Xshell 鏈接需遠程服務器安裝有 openssh,CentOS系統默認安裝了opensshmysql
[root@centos7 ~]# rpm -qa | grep openssh-server
切換 root 身份,爲 jiong 用戶添加 root 權限linux
[jiong@centos7 ~]$ su - [root@centos7 ~]# vi /etc/sudoers
## Allow root to run any commands anywhere root ALL=(ALL) ALL jiong ALL=(ALL) ALL
虛擬機快照保存現場c++
建立軟件包存儲目錄,安裝wget、telnet、vimgit
[jiong@centos7 home]$ sudo mkdir soft [jiong@centos7 soft]$ yum install wget [jiong@centos7 soft]$ yum install telnet [jiong@centos7 soft]$ yum install vim
在linux裏編譯安裝軟件會用到諸如 configure / make / makeinstall的命令,這些都是典型的使用GNU的autoconf和automake產生的程序的安裝步驟make是用來編譯的,它從Makefile中讀取指令,而後編譯程序員
make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置github
紅帽系的linux,須要的開發者組件有以下幾種:sql
autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch pkgconfig redhat-rpm-config rpm-build rpm-sign一個一個去源上找而且安裝是一件很是費時費力的工做,不過好在,yum管理器提供了一個很簡便的方式供咱們安裝。shell
[jiong@centos7 ~]$ yum group list [jiong@centos7 ~]$ sudo yum group install "Development Tools"
這是由於:MySQL 在安裝時會帶一個 MySQL 的函數庫,而這個函數庫在安裝 PHP 時會用到。PHP 安裝成功後會生成一個 php-fpm 進程提供 fastcgi 服務,安裝好 Apache 或者Nginx 若是要執行 PHP 須要進行相關設置。
MySQL 與 MariaDB 不兼容。若是在未刪除 MariaDB 的狀況下嘗試在任一服務器上進行安裝,安裝將終止並顯示一條錯誤消息以指向卸載 MariaDB
centos7 默認安裝了:「 mariadb-libs-5.5.56-2.el7.x86_64」
[jiong@centos7 ~]$ rpm -qa | grep mariadb [jiong@centos7 ~]$ sudo yum remove mariadb-libs-5.5.56-2.el7.x86_64
官方文檔:Source Installation System Requirements
下載 Mysql, boost
[jiong@centos7 soft]$ cd /home/soft/ [jiong@centos7 soft]$ sudo wget https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz [jiong@centos7 soft]$ sudo https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
libaio libaio-devel bison bison-devel zlib-devel openssl openssl-devel ncurses ncurses-devel libcurl-devel libarchive-devel boost boost-devel lsof wget gcc gcc-c++ make cmake perl kernel-headers kernel-devel pcre-devel screen
CMake是一個跨平臺的安裝(編譯)工具,能夠用簡單的語句來描述全部平臺的安裝(編譯過程)。ncurses(new curses)是一個程序庫,它提供了API,能夠容許程序員編寫獨立於終端的基於文本的用戶界面。
Boost 庫是一個可移植、提供源代碼的 C++ 庫,做爲標準庫的後備,是 C++標準化進程的開發引擎之一。
卸載系統中低版本的 boost,編譯安裝 boost,安裝 ncurses-devel,bison
[root@centos7 ~]# rpm -qa boost [root@centos7 ~]# rpm -e boost [root@centos7 ~]# tar jxvf boost_1_55_0.tar.bz2 [root@centos7 ~]# cd boost_1.55.0 [root@centos7 ~]# ./bootstrap.sh [root@centos7 ~]# ./b2 [root@centos7 ~]# ./b2 install [root@centos7 ~]# yum install ncurses-devel [root@centos7 ~]# yum install bison
[root@centos7 ~]# cd /home/soft/
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DWITH_BOOST=./bootst/boost_1_59_0 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DENABLE_DTRACE=0 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EMBEDDED_SERVER=1
[root@centos7 ~]# make [root@centos7 ~]# make install [root@centos7 ~]# make clean
[root@centos7 ~]# rm CMakeCache.txt
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安裝路徑 -DMYSQL_DATADIR=/usr/local/mysql/data //數據文件存放位置 -DSYSCONFDIR=/etc //my.cnf路徑 -DWITH_MYISAM_STORAGE_ENGINE=1 //支持MyIASM引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1 //支持InnoDB引擎 -DWITH_MEMORY_STORAGE_ENGINE=1 //支持Memory引擎 -DWITH_READLINE=1 //快捷鍵功能(我沒用過) -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock //鏈接數據庫socket路徑 -DMYSQL_TCP_PORT=3306 //端口 -DENABLED_LOCAL_INFILE=1 //容許從本地導入數據 -DWITH_PARTITION_STORAGE_ENGINE=1 //安裝支持數據庫分區 -DEXTRA_CHARSETS=all //安裝全部的字符集 -DDEFAULT_CHARSET=utf8 //默認字符 -DDEFAULT_COLLATION=utf8_general_ci //設置默認校對規則
MySQL 被 Oracle 收購後,CentOS 的鏡像倉庫中提供的默認的數據庫也變爲了 MariaDB
mysql-devel 開發用到的庫以及包含文件。若是不做C開發,能夠不裝,任何 -devel 包都是這樣
mysql 客戶端 + 服務器
mysql-client客戶端,提供「mysql」命令行程序。
mysql-server 數據庫服務器
[root@centos7 ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm [root@centos7 ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@centos7 ~]# sudo yum repolist enabled | grep "mysql.*-community.*" # mysql-connectors-community/x86_64 MySQL Connectors Community 74 # mysql-tools-community/x86_64 MySQL Tools Community 74 # mysql56-community/x86_64 MySQL 5.6 Community Server 429
[root@centos7 ~]# sudo yum install mysql-server
[root@centos7 ~]# sudo vi /etc/my.cnf # 指定密碼校驗策略: 0=LOW, 1=MEDIUM, 2=STRONG validate_password_policy=0 # 禁用密碼策略 validate_password = off # 重啓 sudo systemctl restart mysqld
[root@centos7 ~]# set password = password('123456');
安裝mysql、設置開機自動、啓動服務
[root@centos7 ~]# systemctl enable mysqld.service [root@centos7 ~]# systemctl start mysqld.service
設置 root 密碼
禁止 root 帳號遠程登陸
禁止匿名帳號(anonymous)登陸
刪除測試庫
是否確認修改
[root@centos7 ~]# mysql_secure_installation
[root@centos7 ~]# vi /etc/my.cnf
[client] default-character-set = utf8 [mysqld] default-storage-engine = INNODB character-set-server = utf8 collation-server = utf8_general_ci
> -r: 添加系統用戶 > -g: 指定要建立的用戶所屬組 > -s: 新賬戶的登陸shell > -d: 新賬戶的主目錄 > -M: 不要建立用戶的主目錄
[root@centos7 ~]# groupadd -r mysql [root@centos7 ~]# useradd -r -g mysql -M mysql [root@centos7 ~]# passwd mysql [root@centos7 ~]# usermod -s /sbin/nologin mysql
容許 「數據庫」.「表」 TO '用戶名' @ % [任意IP] IDENTIFIED BY '密碼' WITH GRANT OPTION
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'jiong' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO 'jiong'@'%' IDENTIFIED BY 'jiong' WITH GRANT OPTION; mysql> flush privileges;
容許mysql遠程訪問,可使用如下三種方式:
改表
受權
// 改表 mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; //受權 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
MySQL> show variables like '%dir%'; +-----------------------------------------+----------------------------+ | Variable_name | Value | +-----------------------------------------+----------------------------+ | basedir | /usr/ | | binlog_direct_non_transactional_updates | OFF | | character_sets_dir | /usr/share/mysql/charsets/ | | datadir | /var/lib/mysql/ | | ignore_db_dirs | | | innodb_data_home_dir | | | innodb_log_group_home_dir | ./ | | innodb_max_dirty_pages_pct | 75 | | innodb_max_dirty_pages_pct_lwm | 0 | | innodb_tmpdir | | | innodb_undo_directory | . | | lc_messages_dir | /usr/share/mysql/ | | plugin_dir | /usr/lib64/mysql/plugin/ | | slave_load_tmpdir | /tmp | | tmpdir | /tmp | +-----------------------------------------+----------------------------+
[root@centos7 ~]# iptables -F [root@centos7 ~]# iptables -X [root@centos7 ~]# iptables -Z
直連:使用 mysql 帳戶(只能鏈接數據庫,沒法鏈接服務器)
SSH鏈接:待補充
看官方文檔比沒目的地搜索效率好上許多,還能學習英文「笑」「谷歌翻譯真好」
學習依賴安裝,掌握姿式
----------------------------------------------------------DONE------------------------------------------------------------