CentOS6安裝配置python3及MySql5.1.73

最近租用了低配版的VPS,系統(tǒng)CentOS6.10 X64,1核512M內(nèi)存。
系統(tǒng)默認(rèn)安裝python2.6.6,我需要使用python3。遂安裝,記錄安裝過程。


查看當(dāng)前操作系統(tǒng)內(nèi)核信息

uname -a   
顯示結(jié)果
#Linux Vultr.guest 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

查看centos系統(tǒng)版本

cat /etc/centos-release
#顯示結(jié)果
#CentOS Linux release 7.5.1804 (Core) 

一、安裝python3

1、安裝依賴包
yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2、下載所需版本的Python3
(所有版本的python都可以在https://www.python.org/ftp/python/上找到)
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz

3、創(chuàng)建存放目錄
mkdir /usr/local/python3

4、解壓壓縮包,進(jìn)入該目錄,安裝Python3
tar -xvf Python-3.6.6.tar.xz
cd Python-3.6.6
./configure --prefix=/usr/local/python3
make && make install #清除之前編譯的可執(zhí)行文件及配置文件
5、建軟鏈接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

這兩句輸進(jìn)去是不會跳出來什么提示的

6、驗(yàn)證
python3 -V
pip3 -V

驗(yàn)證.png

7、制作成一鍵安裝包pythoninstall.sh

#!/bin/bash
#一鍵安裝python3.6.6腳本
echo '安裝python3.6.6并設(shè)置python3'
echo '安裝依賴庫'
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
echo '下載python3.6.6'
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
#創(chuàng)建安裝目錄
mkdir /usr/local/python3
#解壓并安裝
tar -xvf Python-3.6.6.tar.xz
cd Python-3.6.6
./configure --prefix=/usr/local/python3
make && make install
#創(chuàng)建軟鏈接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo '安裝完畢!'

終端輸入:bash pythoninstall.sh
一鍵安裝python3搞定!


二、安裝mysql5.1.73

1、查看有無安裝過mysql
rpm -qa|grep mysql
或者
yum list installed mysql

2、查看有無安裝包
yum list mysql*

3、安裝mysql服務(wù)端
yum install mysql mysql-server yum install mysql-devel

4、啟動&&停止
(1)設(shè)置數(shù)據(jù)庫默認(rèn)字符
在mysql配置文件/etc/my.cnf中加入default-character-set=utf8
nano /etc/my.cnf

(2)設(shè)置開機(jī)啟動
chkconfig mysqld on chkconfig --list mysqld
查看mysql開機(jī)啟動狀態(tài)
chkconfig --list |grep mysqld
(3)啟動mysql
service mysqld start

5、登錄
(1)創(chuàng)建root管理員
mysqladmin -u root password 123456

(2)忘記密碼(沒實(shí)踐過)
service mysqld stop mysqld_safe --user=root --skip-grant-tables mysql -u root use mysql update user set password=password("new_pass") where user="root"; flush privileges;

(3)查看mysql狀態(tài)
service mysqld status
顯示mysqld is running

6、遠(yuǎn)程訪問
(1)修改localhost
更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改成"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;

(2)指定授權(quán)(成功實(shí)踐)
1)使用myuser/mypassword從任何主機(jī)連接到mysql服務(wù)器:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

可以從別的機(jī)器上用mysql -umyuser -pmypassword -h192.168.1.XXX登錄

2)使用myuser/mypassword從ip為192.168.225.166的主機(jī)連接到mysql服務(wù)器:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

3)泛授權(quán)(未實(shí)踐)

mysql -h localhost -u root
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //賦予任何主機(jī)上以root身份訪問數(shù)據(jù)的權(quán)限
mysql>FLUSH PRIVILEGES;

7、MySQL的幾個重要目錄
a、數(shù)據(jù)庫目錄
/var/lib/mysql/
b、配置文件
/usr/share /mysql(mysql.server命令及配置文件)
c、相關(guān)命令
/usr/bin(mysqladmin mysqldump等命令)
d、啟動腳本
/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)

8、卸載mysql
a、查找以前是否裝有mysql
rpm -qa|grep -i mysql
b、刪除mysql
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf

9、bug處理
[ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]
解決方法:
(1)停止mysql服務(wù)器
service mysqld stop
(2)使用mysqld_safe命令在啟動mysql,更新root賬號的密碼
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &:
注:--skip-grant-tables:不啟動grant-tables(授權(quán)表),跳過權(quán)限控制。
  --skip-networking :跳過TCP/IP協(xié)議,只在本機(jī)訪問(從網(wǎng)上有些資料看,這個選項不是必須的??梢圆挥?
執(zhí)行上面命令后,此會話窗口會出現(xiàn)無反應(yīng)的狀態(tài),需要使用CTRL+C中斷會話
(3)設(shè)置密碼
mysql -u root mysql
mysql> update user set password=PASSWORD('12345')
-> where user='root' and host='root' or host='localhost';
flush privileges
(4)啟動mysql服務(wù)
service mysqld start

三、實(shí)現(xiàn)遠(yuǎn)程登錄mysql

要使得能從本地訪問遠(yuǎn)程服務(wù)器mysql數(shù)據(jù)庫,還需要對其授權(quán)。在服務(wù)器上我們需要做一些配置工作。

mysql -h localhost -u root -p
mysql>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; 
mysql>flush privileges;

這句話的意思是將對所有的database(.)的所有的權(quán)限(如增刪改查等)授予所有的主機(jī)(%)的root用戶,這些用戶的登陸密碼為123456(可以和mysql的密碼不一樣)。
另外我們還需要關(guān)閉服務(wù)端的iptables:service iptables stop,然后就可以從本地機(jī)器上試著連接服務(wù)器的mysql了。
mysql -h 192.168.1.xx -u root -p123456
注意這里的-p后面的密碼緊跟其后,不要有空格,否則123456會被當(dāng)成數(shù)據(jù)庫名稱
如果你不想完全關(guān)閉iptables,我們還有另一個方法:為iptables增加一條接受遠(yuǎn)程訪問該mysql的規(guī)則,開放端口權(quán)限(mysql使用端口3306)。
注意一定要將規(guī)則加在reject規(guī)則的前面,否則不會起到作用,連接就會照樣報錯。
看到信息 firewall rules 防火墻的規(guī)則 其實(shí)就是保存在 /etc/sysconfig/iptables
nano /etc/sysconfig/iptables
在REJECT前面加上
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存

編輯界面.png
linux下iptables 禁止端口和開放端口
啟動指令:service iptables start   
重啟指令:service iptables restart   
關(guān)閉指令:service iptables stop   
然后是相關(guān)配置:/etc/sysconfig/iptables   
如何操作該配置呢?   
vim /etc/sysconfig/iptables   
然后進(jìn)去修改即可,修改完了怎么辦?這里很多人會想到/etc/rc.d/init.d/iptables save指令,但是一旦你這么干了你剛才的修改內(nèi)容就白做了。。。   
具體方法是:   
只修改/etc/sysconfig/iptables 使其生效的辦法是修改好后先service iptables restart,然后才調(diào)用/etc/rc.d/init.d/iptables save,   
因?yàn)?etc/rc.d/init.d/iptables save會在iptables服務(wù)啟動時重新加載,要是在重啟之前直接先調(diào)用了/etc/rc.d/init.d/iptables save那么你的/etc/sysconfig/iptables 配置就回滾到上次啟動服務(wù)的配置了,這點(diǎn)必須注意?。?!  

四、mysql基本操作

root用戶使用密碼登錄數(shù)據(jù)庫
mysql -u root -p
修改用戶密碼
mysqladmin -u 用戶 -p password 密碼
退出數(shù)據(jù)庫
exit

顯示所有數(shù)據(jù)庫
show databases;

創(chuàng)建數(shù)據(jù)庫
create database 數(shù)據(jù)庫名;

刪除數(shù)據(jù)庫
drop database 數(shù)據(jù)庫名;

單表查詢查詢所有字段
SELECT id, bookname, author, price, booktypeid FROM t_book;
SELECT * FROM t_book;

單表查詢查詢指定字段
SELECT bookname, author, price FROM t_book;

where條件查詢
SELECT * FROM t_book t WHERE t.bookTypeId = 1;
SELECT * FROM t_book t WHERE t.price > 100;

帶in關(guān)鍵字查詢
SELECT * FROM t_book t WHERE t.bookTypeId IN (1, 3);
SELECT * FROM t_book t WHERE t.bookTypeId NOT IN (1, 3);

帶between and的范圍查詢
SELECT * FROM t_book t WHERE t.price BETWEEN 50 AND 100;
SELECT * FROM t_book t WHERE t.price NOT BETWEEN 50 AND 100;

帶like的模糊查詢
/全字匹配,較少用/
SELECT * FROM t_book t WHERE t.bookName LIKE '物理學(xué)';
/單個字模糊匹配/

SELECT * FROM t_book t WHERE t.bookName LIKE '物理_';

/多個字模糊匹配/
SELECT * FROM t_book t WHERE t.bookName LIKE '物理學(xué)%';
SELECT * FROM t_book t WHERE t.bookName LIKE '%物理學(xué)%';

空值查詢
SELECT * FROM t_book t WHERE t.author IS NULL;
SELECT * FROM t_book t WHERE t.author IS NOT NULL;

帶and的多條件查詢
SELECT * FROM t_book t WHERE (t.price NOT BETWEEN 50 AND 100) AND t.bookTypeId = 1;

帶or的多條件查詢
SELECT * FROM t_book t WHERE t.bookTypeId = 1 OR t.bookTypeId = 7;

distinct支重復(fù)查詢
SELECT DISTINCT t.booktypeid FROM t_book t;

對查詢結(jié)果排序
SELECT * FROM t_book t ORDER BY t.price;

group by分組查詢
/與GROUP_CONCAT一起使用,會把結(jié)果拼接在一起/
SELECT GROUP_CONCAT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;
/與COUNT一起使用,統(tǒng)計分組后每組成員的個數(shù)/
SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid;
/與having一起使用,限制輸出結(jié)果/
SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid HAVING COUNT(t.bookname) > 3;
/WITH ROLLUP,在最后加入一個匯總行/
SELECT COUNT(t.bookname), t.booktypeid FROM t_book t GROUP BY t.booktypeid WITH ROLLUP;

limit分頁查詢
/查詢1-5條記錄/
SELECT * FROM t_book t LIMIT 0,5;
/查詢6-10條記錄/
SELECT * FROM t_book t LIMIT 5,5;
/查詢11-15條記錄/
SELECT * FROM t_book t LIMIT 10,5;

連接查詢
連接查詢是將兩個或兩個以上的表按照某個條件連接起來,從中選取需要的數(shù)據(jù)。
1、內(nèi)連接查詢
內(nèi)連接查詢是一種最常用的連接查詢。內(nèi)連接查詢可以查詢兩個或者兩個以上的表。
SELECT * FROM t_book, t_booktype;
SELECT * FROM t_book b, t_booktype bt WHERE b.bookTypeId = bt.id;
SELECT b.bookName, b.price, bt.bookTypeName FROM t_book b, t_booktype bt WHERE b.bookTypeId = bt.id;

2、外連接查詢
外連接可以查出某一張的所有信息
a) 左連接查詢
可以查詢出“表1”的所有記錄,而“表2”中只能查詢出匹配的記錄
/以左表作為全量表進(jìn)行關(guān)聯(lián)查詢/
SELECT b.bookName, b.author, bt.bookTypeName FROM t_book b LEFT JOIN t_booktype bt ON b.bookTypeId = bt.id;
b) 右連接查詢
可以查詢出“表2”的所有記錄,而“表1”中只能查詢出匹配的記錄
/以右表作為全量表進(jìn)行關(guān)聯(lián)查詢/
SELECT b.bookName, b.author, bt.bookTypeName FROM t_book b RIGHT JOIN t_booktype bt ON b.bookTypeId = bt.id;

3、多條件連接查詢
SELECT b.bookName, b.price, bt.bookTypeName FROM t_book b, t_booktype bt WHERE b.bookTypeId = bt.id AND b.price > 50;

喜歡這篇文章,就請點(diǎn)贊支持。喜歡我就關(guān)注我。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容