您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

时间:2020-01-02 15:03:23  来源:  作者:

PostgreSQL

  • 安装并初始化PostgreSQL

安装postgresql-server

yum install postgresql-server postgresql-contrib

检查安装所在路劲

[root@172-12-0-100 ~]# rpm -ql postgresql-server | grep setup
/usr/bin/postgresql-setup

初始化数据库

postgresql-setup initdb

开启服务并设置为自启动

systemctl start postgresql
systemctl enable postgresql

查看当前版本并修改用户密码

[root@172-12-0-100 share]# psql --version
psql (PostgreSQL) 9.2.24
[root@172-12-0-100 share]# su - postgres
-bash-4.2$ psql -U postgres
psql (9.2.24)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSword '123456';
postgres-#
postgres-# q
-bash-4.2$

开启远程访问

缺省时,postgresql只接受主机本身发起的连接

[root@172-12-0-100 data]# netstat -anlp | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 20737/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 20737/postgres

修改监听地址

vim /var/lib/pgsql/data/postgresql.conf
修改#listen_addresses = 'localhost' 为 listen_addresses='*'

 

配置文件的路径可通过如下方式查找

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

 

配置信任连接

vim /var/lib/pgsql/data/pg_hba.conf

 

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

重启服务

systemctl restart postgresql

检查接口监听情况

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

设置防火墙,允许用户连接

firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd –reload

 

创建新用户和测试用数据库

[root@172-12-0-100 share]# su - postgres
-bash-4.2$ psql -U postgres
psql (9.2.24)
Type "help" for help.
postgres=#

创建用户:

postgres=# create user admin with password '12345678';
CREATE ROLE

 

创建测试用数据库并指定拥有者,将数据库所有权限赋予该拥有者

postgres=# create database testdb owner admin;
CREATE DATABASE
postgres=#
postgres=# grant all on database testdb to admin;
GRANT

查看数据库(l)

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

退出(q)

postgres=# q

-bash-4.2$ exit

Logout

 

使用Python尝试远程连接postgresql

Python连接postgresql时,需要先安装psycopg2

pip install psycopg2

写一个python脚本测试数据库的连接情况

## 导入psycopg2包
import psycopg2
## 连接到一个给定的数据库
conn = psycopg2.connect(database="testdb", user="admin",
 password="12345678", host="10.10.11.250", port="5432")
## 建立游标,用来执行数据库操作
cursor = conn.cursor()
## 执行SQL命令
cursor.execute("CREATE TABLE test_conn(id int, name text, addr text)")
cursor.execute("INSERT INTO test_conn values(1,'Moses','Egypt')")
cursor.execute("INSERT INTO test_conn values(2,'Joshua','Israel')")
## 提交SQL命令
conn.commit()
## 执行SQL SELECT命令
cursor.execute("select * from test_conn")
## 获取SELECT返回的元组
rows = cursor.fetchall()
for row in rows:
 print('id = ',row[0], 'name = ', row[1], 'addr = ', row[2], 'n')
## 关闭游标
cursor.close()
## 关闭数据库连接
conn.close()

 

MySQL

安装并初始化mysql数据库

当使用yum install mysql时,会直接安装MariaDB。MySQL先后被Sun, Oracle收购, MySQL之父的Michael以他女儿Maria的名字开始了MySQL的另外一个衍生版本:MariaDB.

yum install mariadb-server

查看服务启动情况和端口监听情况

systemctl status mariadb

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

监听端口

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

也可以通过执行mysql后,通过show global variables like 'port'进行查询

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

修改监听端口

在配置文件/etc/my.cnf文件中,直接增加一行port=3309,重启服务,即可将端口由缺省的3306修改为3309

CentOS常用数据库安装和python使用(MySQL, PostgreSQL)

 

重新加载服务

systemctl restart mariadb

一些配置说明

[mysqld]
skip-networking=1 #不监听任何网络接口(即netstat看不到3306端口)
datadir=/var/lib/mysql #数据库存放目录

创建测试数据库

[root@172-12-0-100 ~]# mysql
MariaDB [(none)]> create database testdb;
--创建可远程登录的用户
create user 'admin'@'%' identified by '12345678';
---授权该用户对testdb的所有权限
grant select,insert,delete,update,create,drop on testdb.* to 'admin'@'%' identified by '12345678';
flush privileges;--立即启用修改

如果创建错了,可删除该用户

DROPUSER'username'@'host';

放开防火墙端口:

firewall-cmd --permanent  --add-port=3306/tcp
firewall-cmd --reload

通过python远程访问Mysql数据库

pip install pymysql

脚本示例:

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host="10.10.11.250", user="admin", password="12345678",database="testdb",charset="utf8")
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 创建表格
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)

 
#插入数据
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "Moses"
age = 180
# 执行SQL语句
cursor.execute(sql, [username, age])
# 提交事务
conn.commit()
username = "Joshua"
age = 120
cursor.execute(sql, [username, age])
conn.commit()
#查询数据
sql = "SELECT * from USER1;"
cursor.execute(sql)
results = cursor.fetchall()
print(results)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()


Tags:CentOS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  Tags: CentOS  点击:(1)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  Tags: CentOS  点击:(10)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  Tags: CentOS  点击:(7)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  Tags: CentOS  点击:(7)  评论:(0)  加入收藏
概述我们知道SQL Server是微软公司推出的重要的数据库产品,通常情况下只支持部署在windows平台上。不过令人感到兴奋的是,从SQL Server 2017开始支持 linux系统。此 SQL Serve...【详细内容】
2021-12-17  Tags: CentOS  点击:(13)  评论:(0)  加入收藏
1、 登陆CentOS 2、 查看备份脚本,脚本放在\usr\local目录下 3、 编写数据库备份脚本,内容如下 前提是需要在Oracle创建directory文件,如果没有,可以create创建并授权给相应的用...【详细内容】
2021-12-10  Tags: CentOS  点击:(14)  评论:(0)  加入收藏
查看设备[root@sectransfer-srv ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 40G 0 disk├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 3.9G 0 part [SWAP...【详细内容】
2021-12-07  Tags: CentOS  点击:(14)  评论:(0)  加入收藏
1. 前言本文主要介绍Rocky Linux 8.5的新特性以及如何把当前版本升级至最新版本。Rocky Linux在RHEL 8.5发布不到48小时的时间里,Rocky Linux开发团队成功地对iso镜像进行了...【详细内容】
2021-11-26  Tags: CentOS  点击:(76)  评论:(0)  加入收藏
准备安装包(PHP: Hypertext Preprocessor)下载安装包以及组件wget https://www.php.net/distributions/php-8.0.0.tar.bz2wget https://github.com/phpredis/phpredis/archive...【详细内容】
2021-11-09  Tags: CentOS  点击:(40)  评论:(0)  加入收藏
简介CentOS有自带的supervisor,可以通过yum直接安装。安装在CentOS7上可以直接安装,在CentOS Stream上可以通过epel-release安装。yum -y install supervisor服务CentOS7以上...【详细内容】
2021-10-26  Tags: CentOS  点击:(41)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条