Centos學習記錄
Centos學習記錄
文章目錄
1 Centos7.6安裝及優化記錄
1.1 下載
下載地址:
網易映象
清華映象
在/7.6.1810/isos/x86_64/目錄下載映象
1.2 安裝與優化
跳轉
2 安裝Python3
以Python3.6為例
2.1 首先安裝依賴
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel zlib-devel
2.2 下載Python原始碼
(1)下載
先到https://www.python.org/downloads/source/找到想要安裝的版本,右鍵複製地址,然後使用wget命令下載到centos中
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
(2)解壓
tar -zxvf Python-3.6.1.tgz
cd Python-3.6.1/
(3)安裝
假設安裝到/usr/local目錄中
./configure --prefix=/usr/local/
make && make install
(4)設定軟連線
ln -s /usr/local/bin/python3.6 /usr/bin/python3
ln -s /usr/local/bin/pip3 /usr/bin/pip3
3 安裝CMake
3.1 安裝依賴
yum install -y gcc gcc-c++ make automake wget
3.2 獲取CMake原始碼包
在https://cmake.org/files/中找到想要下載的版本,複製連結地址,使用wget命令下載
wget https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz
3.3 解壓
tar -zxvf cmake-3.20.0.tar.gz
cd cmake-3.20.0
3.4 配置安裝
./bootstrap
gmake && gmake install
通過cmake --version 檢視cmake版本號,如果輸出版本號,則安裝成功
4 一次性安裝開發者工具
這裡使用組安裝包,一次性安裝所有開發者工具。
(1)檢視可用組安裝包
yum grouplist | more
(2)搜尋development相關安裝包
yum grouplist | grep development
查到內容如下:
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Development and Creative Workstation
Desktop Platform Development
Development Tools
Server Platform Development
(3)安裝Development Tools包
yum groupinstall "Development Tools"
會一次安裝很多常用的開發包,包括gcc,g++等編譯檔案必須的工具
(4)單獨安裝gcc g++
yum install gcc-g++
5 安裝Mysql5.7
5.1 線上下載mysql安裝包
確保已安裝wget
wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
5.2 安裝Mysql
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
5.3 安裝Mysql服務
首先進入yum.repos.d目錄確保Mysql源已正常安裝
cd /etc/yum.repos.d/ && ls
如果存在mysql-community.repo和mysql-community-source.repo則說明正常
yum -y install mysql-server
5.4 如果有必要,建立新的資料夾,作為新的Mysql資料儲存位置
(1)新建Mysql儲存位置(假設是/home/mysql_data)
mkdir /home/mysql_data
(2)修改所屬使用者
chown -R mysql:mysql /home/mysql_data
(3)配置資料路徑
vi /etc/my.cnf
將datadir修改為/home/mysql_data
儲存退出
5.5 啟動Mysql
systemctl start mysqld
5.6 修改Mysql臨時密碼
(1)獲取Mysql臨時密碼
grep 'temporary password' /var/log/mysqld.log
(2)使用臨時密碼登入
mysql -uroot -p
輸入獲取到的臨時密碼
(3)如果有必要,把Mysql的密碼校驗強度改為低風險
set global validate_password_policy=LOW;
(4)如果有必要,修改MySQL的密碼長度
set global validate_password_length=5;
(5)修改Mysql密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的Mysql密碼';
5.7 允許遠端訪問
(1)首先要關閉Cenots的防火牆或者開放指定埠(3306)
sudo systemctl disable firewalld
(2)修改Mysql允許任何人連線
登入
mysql -uroot -p 密碼
切換到mysql資料
use mysql;
檢視user表
select Host,User from user;
發現root使用者只允許localhost主機登入登入
修改為允許任何地址訪問
update user set Host='%' where User='root';
重新整理許可權
flush privileges;
6 更改Mysql5.7資料庫目錄位置
6.1 建立新的資料路徑
假設新的資料路徑為/home/data/
mkdir -p /home/data & cd /home/data/
6.2 停止Mysql服務程序
mysqladmin -u root -p shutdown
6.3 轉移資料
假設原本的資料路徑為:/var/lib/mysql
cp -rf /var/lib/mysql /home/data/
或者
cp -R /var/lib/mysql /home/data/
6.4 設定目錄歸屬和許可權
chown -R mysql:mysql /home/data/mysql
6.5 修改配置檔案
vi /etc/my.cnf
修改datadir和socket
#datadir=/var/lib/mysql
datadir=/home/data/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
6.6 重啟Mysql服務
service mysqld start
注:
如果啟動失敗,可以嘗試關閉SELinux
setenforce 0
7 MySQL建立使用者和授權
7.1 登入資料庫
mysql -uroot -p 密碼
use mysql
7.2 增刪改使用者
(1)建立使用者
新建使用者zero1,並規定只能從指定IP192.168.1.242登入
create user 'zero1'@'192.168.1.242' identified by '密碼';
新建使用者zero2,並規定只能從以“192.168.1”開頭的IP登入
create user 'zero2'@'192.168.1.%' identified by '密碼';
新建使用者zero3,並允許以任意IP登入
create user 'zero3'@'%' identified by '密碼';
(2)刪除使用者
drop user '使用者名稱'@'IP地址';
(3)修改使用者
rename user '使用者名稱'@'IP地址' to '新使用者名稱'@'IP地址';
(4)修改密碼
set password for '使用者名稱'@'IP地址'=Password('新密碼');
7.3 對當前的使用者授權管理
(1)檢視許可權
show grants for '使用者'@'IP地址'
(2)設定許可權
規定使用者zero1只能對db1.doc1進行查詢、插入和更新操作(db1為指定資料庫,doc1為db1中的一張表)
grant select ,insert,update on db1.doc1 to "zero1"@'192.168.1.242';
規定使用者zero2具備表格db1.doc1的所有操作許可權
grant all privileges on db1.doc1 to "zero2"@'192.168.1.%';
規定使用者zero3具備資料庫db1的所有操作許可權
grant all privileges on db1.* to "zero3"@'%';
規定使用者zero3具備所有資料庫的所有操作許可權
grant all privileges on *.* to "zero3"@'%';
(3)取消許可權
取消使用者zero1對db1.doc1所有的操作許可權
revoke all on db1.doc1 from 'zero1'@'192.168.1.242';
取消使用者zero3對資料庫db1的所有表的所有操作許可權
revoke all on db1.* from 'zero3'@'%';
取消使用者zero3對所有資料庫的所有操作許可權
revoke all privileges on *.* from 'zero3'@'%';
備註:
(1)所有許可權設定和取消操作完成後都需要過載授權表才能生效
FLUSH PRIVILEGES;
(2)MYSQL全域性管理許可權
| 程式碼 | 許可權 |
|---|---|
| FILE | 在MySQL伺服器上讀寫檔案 |
| PROCESS | 顯示或殺死屬於其它使用者的服務執行緒 |
| RELOAD | 過載訪問控制表,重新整理日誌等 |
| SHUTDOWN | 關閉MySQL服務 |
(3)資料庫/資料表/資料列許可權
| 程式碼 | 許可權 |
|---|---|
| ALTER | 修改已存在的資料表(例如增加/刪除列)和索引 |
| CREATE | 建立新的資料庫或資料表 |
| DELETE | 刪除表的記錄 |
| DROP | 刪除資料表或資料庫 |
| INDEX | 建立或刪除索引 |
| INSERT | 增加表的記錄 |
| SELECT | 顯示/搜尋表的記錄 |
| UPDATE | 修改表中已存在的記錄 |
| ALL | 所有許可權 |
| USAGE | 只允許登入–其它什麼也不允許做 |
8 Mysql修改密碼遇到ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor:yes)
8.1 跳過Mysql密碼認證
vi /etc/my.cnf
在[mysqld]後面任意一行新增skip-grant-tables
8.2 重啟Mysql
systemctl restart mysqld
8.3 修改密碼
mysql -u root -p
update user set password=password("你的新密碼") where user="root";
flush privileges;
8.4 恢復密碼認證
vi /etc/my.cnf
刪除或註釋掉skip-grant-tables
9 CentOS7防火牆埠開放
9.1 檢視防火牆狀態
firewall-cmd --state
9.2 檢視當前已經開放的埠
firewall-cmd --list-ports
9.3 開啟埠
以3306為例(tcp協議)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
9.4 重啟防火牆
firewall-cmd --reload
9.5 關閉防火牆
systemctl stop firewalld
9.6 禁止firewall開機啟動
systemctl disable firewalld
9.7 設定firewall開機啟動
systemctl enable firewalld
10 解決端口占用
10.1 檢視佔用了指定埠的程序
netstat -tlnp | grep port
10.2 檢視佔用埠程序的具體資訊
lsof -i:8080

10.3 強制殺死程序
kill -9 2058
11 掛載exFAT硬碟
11.1 安裝依賴和包
yum install -y http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install exfat-utils fuse-exfat
11.2 檢視是否掛載成功
插上硬碟後檢視
cat /proc/partitions
11.3 如果沒有掛載成功,手動掛載
cd /media
mkdir udisk
mount -t exfat /dev/sdbX(X是新增的盤號) udisk
12 安裝micro編輯器
cd /usr/local/bin; curl https://getmic.ro | sudo bash
13 centos7安裝google瀏覽器(使用gnome桌面)
13.1 下載rpm包
參考 跳轉
13.2 安裝
yum localinstall google-chrome-stable_current_x86_64.rpm
13.3 啟動失敗解決
使用–no-sandbox選項
/usr/bin/google-chrome --no-sandbox
14 後臺執行程式
14.1 設定程式為後臺執行
(1)執行程式時加上&
如python3 main.py &
但需要注意的是:當用戶退出終端,程式也會退出
(2)nohup 命令 &
如nohup python3 main.py > out.log 2>&1 &
- nohup可以使程式不掛斷執行,即使用者退出終端不會中止程式,同時在執行檔案同級目錄下會生成一個out.log檔案,記錄所有程式執行時返回或輸出的內容
- 在命令後面使用&實現後臺執行;
- 2>&1 是將標準錯誤重定向到標準輸出
14.2 殺死後臺程式
(1)如果未退出過終端,可以通過jobs -l檢視

(2)通過kill -9 Process殺死程序
首先需要通過命令查詢程序,比如
ps -ef | grep python3找到指定程式,複製pid,假設是20222,則可以使用kill命令
kill -9 20222
14.3 查詢程序相關命令
(1)檢視所有程序
ps -ef(2)檢視使用記憶體的程序
ps -aux(3)檢視記憶體使用說明 (shift+m 按照排名)
top
