借助miniconda安装python,便于多种Python环境的管理。
1)下载最新版本的minconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
注意:若提示wget命令不存在,执行 yum install wget -y 安装即可
2)安装miniconda
[root@song envs]# ll
total 65148
-rw-r--r--. 1 root root 66709754 Jul 22 00:13 Miniconda3-latest-Linux-x86_64.sh
[root@song envs]# chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
[root@song envs]# bash Miniconda3-latest-Linux-x86_64.sh #运行
···
Please answer 'yes' or 'no':'
>>> yes
Miniconda3 will now be installed into this location:
/root/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/miniconda3] >>> /root/envs/miniconda3 #选择yes默认安装位置;或者直接自定义路径
3)测试安装是否成功
(base) [root@song bin]# conda -V
conda 4.10.3
显示版本号,则安装成功。
若显示conda命令找不到,则环境变量配置有问题或者未生效
[root@song envs]# conda -V
bash: conda: command not found...
解决方法:
[root@song bin]# vim ~/.bashrc #查看是否配置环境变量
#在最后一行加上,取决于每个人的实际安装路径
export PATH=$PATH:/root/envs/miniconda3/bin
[root@song bin]# source ~/.bashrc #运行生效
(base) [root@song bin]# conda -V
conda 4.10.3
拓展:配置镜像源
(base) [root@song bin]#cp ~/.condarc ~/.condarc.bak #以防出错,先备份
(base) [root@song bin]# cd ~
(base) [root@song ~]# vim .condarc
#将内容全部删除,修改为下面的配置
(base) [root@song ~]# conda clean -i #清除缓存
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
借助miniconda创建python环境
1)创建python环境
# conda create -n env_name python=version_id
(base) [root@song bin]# conda create -n py38 python=3.8
若出现以下问题,则需要考虑按照上面步骤配置镜像源
(base) [root@song bin]# conda create -n py38 python=3.8
Collecting package metadata (current_repodata.json): failed
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/linux-64/current_repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.
'https://repo.anaconda.com/pkgs/main/linux-64'
2)查看所有的python环境
(base) [root@song ~]# conda env list
# conda environments:
#
base * /root/envs/miniconda3
py38 /root/envs/miniconda3/envs/py38
3)激活Python环境,安装必要的库
(base) [root@song ~]# conda activate py38 #激活环境
(py38) [root@song ~]# conda install gdal #也可以使用pip install gdal安装,但较易出错,不推荐
(py38) [root@song ~]# conda install jupyter matplotlib scipy
pip有时候系统环境没有某个编译器可能会失败,conda不会。在使用pip install出错时,不妨考虑用conda install
(py38) [root@song ~]# conda list
# packages in environment at /root/envs/miniconda3/envs/py38:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_openmp_mutex 4.5 1_gnu defaults
aws-c-common 0.4.57 he6710b0_1 defaults
aws-c-event-stream 0.1.6 h2531618_5 defaults
aws-checksums 0.1.9 he6710b0_0 defaults
aws-sdk-cpp 1.8.185 hce553d0_0 defaults
blas 1.0 mkl defaults
bzip2 1.0.8 h7b6447c_0 defaults
c-ares 1.17.1 h27cfd23_0 defaults
ca-certificates 2021.7.5 h06a4308_1 defaults
cairo 1.16.0 hf32fb01_1 defaults
certifi 2021.5.30 py38h06a4308_0 defaults
cfitsio 3.470 hf0d0db6_6 defaults
curl 7.78.0 h1ccaba5_0 defaults
expat 2.4.1 h2531618_2 defaults
fontconfig 2.13.1 h6c09931_0 defaults
freetype 2.10.4 h5ab3b9f_0 defaults
freexl 1.0.6 h27cfd23_0 defaults
gdal 3.0.2 py38h4694593_1 defaults
geos 3.8.0 he6710b0_0 defaults
geotiff 1.6.0 h21e8280_0 defaults
giflib 5.2.1 h7b6447c_0 defaults
glib 2.69.1 h5202010_0 defaults
hdf4 4.2.13 h3ca952b_2 defaults
hdf5 1.10.6 hb1b8bf9_0 defaults
icu 58.2 he6710b0_3 defaults
intel-openmp 2021.3.0 h06a4308_3350 defaults
jpeg 9b h024ee3a_2 defaults
json-c 0.13.1 h1bed415_0 defaults
kealib 1.4.14 h54c064f_0 defaults
krb5 1.19.2 hac12032_0 defaults
ld_impl_linux-64 2.35.1 h7274673_9 defaults
libboost 1.73.0 h3ff78a5_11 defaults
libcurl 7.78.0 h0b77cf5_0 defaults
libdap4 3.19.1 h6ec2957_0 defaults
libedit 3.1.20210216 h27cfd23_1 defaults
libev 4.33 h7b6447c_0 defaults
libffi 3.3 he6710b0_2 defaults
libgcc-ng 9.3.0 h5101ec6_17 defaults
libgdal 3.0.2 h7c14f60_1 defaults
libgfortran-ng 7.5.0 ha8ba4b0_17 defaults
libgfortran4 7.5.0 ha8ba4b0_17 defaults
libgomp 9.3.0 h5101ec6_17 defaults
libkml 1.3.0 h7ecb851_5 defaults
libnetcdf 4.6.1 h2053bdc_4 defaults
libnghttp2 1.41.0 hf8bcb03_2 defaults
libpng 1.6.37 hbc83047_0 defaults
libpq 12.2 h553bfba_1 defaults
libspatialite 4.3.0a h793db0d_0 defaults
libssh2 1.9.0 h1ba5d50_1 defaults
libstdcxx-ng 9.3.0 hd4cf53a_17 defaults
libtiff 4.2.0 h85742a9_0 defaults
libuuid 1.0.3 h1bed415_2 defaults
libwebp-base 1.2.0 h27cfd23_0 defaults
libxcb 1.14 h7b6447c_0 defaults
libxml2 2.9.12 h03d6c58_0 defaults
lz4-c 1.9.3 h295c915_1 defaults
mkl 2021.3.0 h06a4308_520 defaults
mkl-service 2.4.0 py38h7f8727e_0 defaults
mkl_fft 1.3.0 py38h42c9631_2 defaults
mkl_random 1.2.2 py38h51133e4_0 defaults
ncurses 6.2 he6710b0_1 defaults
numpy 1.20.3 py38hf144106_0 defaults
numpy-base 1.20.3 py38h74d4b33_0 defaults
openjpeg 2.3.0 h05c96fa_1 defaults
openssl 1.1.1k h27cfd23_0 defaults
pcre 8.45 h295c915_0 defaults
pip 21.0.1 py38h06a4308_0 defaults
pixman 0.40.0 h7b6447c_0 defaults
poppler 0.81.0 h01f5e8b_2 defaults
poppler-data 0.4.10 h06a4308_0 defaults
postgresql 12.2 h553bfba_1 defaults
proj 6.2.1 haa6030c_0 defaults
python 3.8.11 h12debd9_0_cpython defaults
readline 8.1 h27cfd23_0 defaults
setuptools 52.0.0 py38h06a4308_0 defaults
six 1.16.0 pyhd3eb1b0_0 defaults
sqlite 3.36.0 hc218d9a_0 defaults
tiledb 2.2.9 hffe1d7a_0 defaults
tk 8.6.10 hbc83047_0 defaults
wheel 0.37.0 pyhd3eb1b0_0 defaults
xerces-c 3.2.3 h780794e_0 defaults
xz 5.2.5 h7b6447c_0 defaults
zlib 1.2.11 h7b6447c_3 defaults
zstd 1.4.9 haebb681_0 defaults
4)退出Python环境
(py38) [root@song ~]# conda deactivate
5)删除某个环境(包括该环境下安装的库):
conda remove --name py38 --all
提示:非root用户,请使用sudo权限
1)导入yum源
(base) [root@song ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2)安装Postgre SQL服务
(base) [root@song ~]# yum install -y postgresql12 postgresql12-server
注意版本选择问题:
安装PostgreSQL 11就是 yum install postgresql12 postgresql12-server
安装PostgreSQL 9.5就是 yum install postgresql95 postgresql95-server
依此类推
3)初始化数据库
(base) [root@song ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK
4)启动PostgreSQL服务
(base) [root@song ~]# systemctl start postgresql-12 #启动PostgreSQL服务
(base) [root@song ~]# systemctl enable postgresql-12 #设置PostgreSQL服务为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-12.service to /usr/lib/systemd/system/postgresql-12.service.
9.x版本的服务名是postgresql-9.x
PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。
默认情况下 PostgreSQL 安装完成后,自带了一个命令行工具 SQL Shell(psql)。Linux系统可以直接切换到 postgres 用户来开启命令行工具:
修改postgres账号密码:
(base) [root@song ~]# sudo -i -u postgres #Linux用户切换为postgres
-bash-4.2$ psql #启动SQL Shell
psql (12.8)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSWORD '123456'; #修改密码
ALTER ROLE
postgres-# \q
-bash-4.2$ exit #退出psql命令行
logout
(base) [root@song ~]#
提示:进入命令行后的操作命令,一定要以;结尾,否则回车也并不会执行!!认为命令未结束。
#启动SQL shell:
su postgres #若未赋予权限,则使用下面的命令
sudo -i -u postgres
psql
#退出
\q
exit
1)数据库相关语法示例
#创建数据库
CREATE DATABASE mydb;
#查看所有数据库
\l
#切换当前数据库
\c mydb
#创建表
CREATE TABLE test(id int,body varchar(100));
#查看当前数据库下所有表
\d
2)用户与访问授权语法示例
#新建用户
CREATE USER test WITH PASSWORD 'test';
#赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO test;
#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb TO test
权限代码:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE、USAGE
默认情况下,PostgreSQL只允许localhost(127.0.0.1)的连接。如果数据库服务器和程序不在一台服务器上,那么将无法连接。所以如果要开启远程访问,需要更改安装文件的配置。
1)修改IP绑定
(base) [root@song ~]# vim /var/lib/pgsql/12/data/postgresql.conf
#将监听地址修改为*
#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行
listen_addresses='*'
2)允许所有IP访问
(base) [root@song ~]# vim /var/lib/pgsql/12/data/pg_hba.conf
#修改配置文件
#在文件的最后追加一行
host all all 0.0.0.0/0 md5
3)重启Postgre SQL服务
(base) [root@song ~]# systemctl restart postgresql-12
4)开放端口-防火墙配置
PostgreSQL默认监听端口为5432
(base) [root@song ~]# firewall-cmd --add-port=5432/tcp --permanent #配置规则,开放端口
success
(base) [root@song ~]# firewall-cmd --reload #配置规则后重新加载
success
(base) [root@song ~]# firewall-cmd --list-ports #查看防火墙开放的端口被
5432/tcp