【postgresql 基础入门】创建数据库的方法,存储位置,决定自己的数据的访问用户和范围

2023-11-03

创建数据库

专栏内容

开源贡献

个人主页我的主页
管理社区开源数据库
座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物.

系列文章

前言

postgresql 数据库是一款通用的关系型数据,在开源数据库中能与商业数据媲美,在业界也越来越流行。

因为是开源数据库,不仅公开源码,还有很多使用案例,好用的插件,所以它的慢慢变成了数据库的先驱和标准,通过postgresql可以很好从使用到原理,彻底搞懂;

如果是学习编程,也可以学到丰富的编程知识,数据结构,编程技巧,它里面还有很多精妙的架构设计,分层思想,可以灵活定制的思想。

本专栏主要介绍postgresql 入门使用,数据库维护管理,通过这些使用来了解数据库原理,慢慢了解postgresql是什么样的数据库,能做那些事情,以及如何做好服务,最关键的是这些知识都是面试的必备项。

概述

本文主要分享PostgreSQL的基础的架构,方便我们对对PostgreSQL的部件之间如何相互作用的理解将会使本节更易理解,在我们使用的时候,不至于与其它类型的数据库产生混淆;

概述

使用数据库服务的前提是,需要指定一个database对象,这个database是其它数据库对象的载体,或者说是上级名命空间。
本文来分享一下创建数据库的几种方法,给数据库赋予用户使用的权限;

原理介绍

大家在想,创建数据库很简单,一条SQL语句就可以了,还需要讲原理吗?

那我们来看这几个问题?

  • 数据库存储的位置在那里;
  • 数据库的所有者是谁;
  • 其它用户如何来访问这个数据库;

看起来还是不简单,数据库也是有存储位置的,它其实也是一个目录,它下面可以存储其它的数据库对象,如该数据库中的表对象;

当然,数据库作为一个各类数据库汇集存储的管理系统,不是所有用户都可以任意访问和操作的,这就有了数据库的所有者,所有者具有该数据库的所有权限,类似于这个数据库的一个管理员;

同样,数据库中有很多用户,它们也是不可以随意访问和操作的,需要管理员给他们分配权限,不符合权限的访问会被拒绝,就如同宿合管理,女生宿舍是不允许男生进入的。

现在通过演示来解答上述问题, 大概流程是这样的:

  1. 登录到数据库 ;
  2. 执行创建数据库的SQL;
  3. 创建新的用户;
  4. 将新数据库的使用权限授予新用户 ;
  5. 新用户登录到新数据库;

创建数据库

这一步的前提是,数据库服务已经启动,当前用户具有创建数据库的权限,一般刚开始我们都使用超级管理员来创建第一个自定义的数据库;

新数据库将通过复制模版数据库template1来创建,也就是说创建数据库,其实就是复制了一份template1模版库,而模版库是在集群初始化时就预定义好的;
在postgresql 中每个数据库对象都有一个唯一的标识,叫做OID,新数据库也会分配一个OID;

创建数据库常见方法:

  • 在图形化客户端创建,通过菜单创建数据库;
  • 通过命令或SQL来创建,本文也是分享这种方式,因为它简单直接,而且不会随着UI变动而发生不同;

本文介绍通过命令和SQL来创建 ,图形化相对简单;

在通过创建之前,我们需要准备登录信息,因为不管是那种创建方式,都是需要能够登录到数据库系统中,最终还是转化为SQL的执行。
通过上篇分享,在刚初始化的集群中,默认有一个数据库 postgres,有一个超级管理员用户,默为当前系统的用户 senllang (根据自已的情况修改) ,监听IP为 localhost, 端口5432

有了这些信息,我们就可以开始创建新的数据库了;

SQL创建

  • 登录数据库系统
[senllang@hatch bin]$ ./psql -d postgres
psql (16beta1)
Type "help" for help.

postgres=#

这里的用户名,IP,端口都采用默认值,只指定了数据库名;

  • 创建数据库
    在命令行中输入以下命令:
postgres=# CREATE DATABASE db_factory;
CREATE DATABASE

在上述命令中,将 db_factory 替换为你希望创建的数据库名称。

通过 \l 命令就可以看到数据库的列表

postgres=# \l
                                                        List of databases
    Name    |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges
------------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
 db_factory | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 postgres   | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 template0  | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
            |          |          |                 |             |             |            |           | senllang=CTc/senllang
 template1  | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
            |          |          |                 |             |             |            |           | senllang=CTc/senllang
(4 rows)

刚才创建的数据库 db_factory 的 Owner就是创建者用户,默认owner拥有该数据库的所有权限,所有Access privileges 一栏没有信息;

客户端命令创建

在安装目录下的bin目录中,有一个工具 createdb ,看名称我们就知道它就是创建数据库专用工具了;
先来看下它的帮助信息

[senllang@hatch bin]$ ./createdb --help
createdb creates a PostgreSQL database.

Usage:
  createdb [OPTION]... [DBNAME] [DESCRIPTION]

Options:
  -D, --tablespace=TABLESPACE  default tablespace for the database
  -e, --echo                   show the commands being sent to the server
  -E, --encoding=ENCODING      encoding for the database
  -l, --locale=LOCALE          locale settings for the database
      --lc-collate=LOCALE      LC_COLLATE setting for the database
      --lc-ctype=LOCALE        LC_CTYPE setting for the database
      --icu-locale=LOCALE      ICU locale setting for the database
      --icu-rules=RULES        ICU rules setting for the database
      --locale-provider={libc|icu}
                               locale provider for the database's default collation
  -O, --owner=OWNER            database user to own the new database
  -S, --strategy=STRATEGY      database creation strategy wal_log or file_copy
  -T, --template=TEMPLATE      template database to copy
  -V, --version                output version information, then exit
  -?, --help                   show this help, then exit

Connection options:
  -h, --host=HOSTNAME          database server host or socket directory
  -p, --port=PORT              database server port
  -U, --username=USERNAME      user name to connect as
  -w, --no-password            never prompt for password
  -W, --password               force password prompt
  --maintenance-db=DBNAME      alternate maintenance database

By default, a database with the same name as the current user is created.

Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

可以看到,使用时,如果是默认ip,port,用户时,直接创建新的数据库即可;
我们再创建一个 db_factory1的数据库

[senllang@hatch bin]$ ./createdb db_factory1
postgres=# \l
                                                        List of databases
    Name     |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges
-------------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
 db_factory  | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 db_factory1 | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 postgres    | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 template0   | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
             |          |          |                 |             |             |            |           | senllang=CTc/senllang
 template1   | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
             |          |          |                 |             |             |            |           | senllang=CTc/senllang
(5 rows)

通过查询,可以看到创建成功了,其它信息与第一种方法创建的一样;

以上两种方法都能成功创建 PostgreSQL 数据库,你可以根据个人喜好和使用环境选择适合你的方法。

存储位置

数据库存储在那里呢,前面博客介绍了数据库的逻辑架构,其中有说存储层次和命名空间,默认情况下,存储在默认的表空间pg_default,它的位置就是当前集群目录下的base目录;如果指定了表空间,那就是表空间对应的目录下了;

我们来证实一下,在集群目录下存储的目录和文件都是以OID来命名的,所以需要查看当前数据库的OID;

postgres=# select * from pg_tablespace ;
  oid  |   spcname    | spcowner | spcacl | spcoptions
-------+--------------+----------+--------+------------
  1663 | pg_default   |       10 |        |
  1664 | pg_global    |       10 |        |
 16394 | tblspc_test1 |       10 |        |
(3 rows)
postgres=# select oid, datname, dattablespace from pg_database ;
  oid  |   datname   | dattablespace
-------+-------------+---------------
     5 | postgres    |          1663
     1 | template1   |          1663
     4 | template0   |          1663
 16445 | db_factory  |          1663
 16446 | db_factory1 |          1663
(5 rows)

在系统表中记录了数据的组织形式,也可以叫它们为数据字典;
pg_tablespace 中记录了表空间的信息,名称和对应的OID;
pg_database 中记录了数据库的信息,名称和对应的OID,还有存储对应的表空间的OID;可以看到我们创建的两个factory的数据库,OID分别是 16445和16446,对应的表空间为 1663,也就是pg_default,即默认表空间的存储位置;

在系统内部所有数据库对象的使用都是通过OID来标识和引用,很多时间我们需要通过OID来找到它对应的名称;

接下来找到默认表空间的位置,它位于集群目录testdemo1下,对应的就是base目录;

[senllang@hatch bin]$ cd testdemo1/base/
[senllang@hatch base]$ ls -l
total 60
drwx------. 2 senllang develops 8192 Sep  3 09:40 1
drwx------. 2 senllang develops 8192 Sep  7 08:27 16445
drwx------. 2 senllang develops 8192 Sep  7 08:32 16446
drwx------. 2 senllang develops 8192 Sep  2 22:02 4
drwx------. 2 senllang develops 8192 Sep  6 13:57 5
-- 集群目录的路径,根据自己的实际位置查找 
[senllang@hatch base]$ pwd
/opt/postgres/bin/testdemo1/base

可以看到base 目录下有五个文件夹,都是以数字命名,正好对应了数据库列表中的OID;新创建的两个数据库 16445,16446也在这里,而且它们下面已经有很多文件了,是从模版数据库复制过来的;

所有者

默认的owner用户为创建者,也可以在创建时指定,当然也可以在创建后修改。

owner在权限管理中有非常关键的作用,它相当于该数据库对象的管理者;

在 PostgreSQL 中,数据库对象的 owner 具有以下作用:

  1. 权限控制:数据库对象的 owner 具有对对象的完全控制权限。他们可以执行任何与该对象相关的操作,包括读取、修改、删除等。其他用户则需要通过 owner 授予的权限才能对对象进行操作。
  2. 对象的访问:数据库对象的 owner 可以决定哪些用户可以访问该对象。通过授予不同的权限级别,owner 可以控制用户对对象的读取、修改和删除等操作。
  3. 对象的所有权:数据库对象的 owner 是该对象的所有者,他们可以对该对象进行任何操作。所有权可以转移给其他用户,但只有 owner 可以回收所有权。
  4. 对象的依赖关系:有些数据库对象(如视图、触发器等)依赖于其他对象,当这些依赖对象被删除或修改时,owner 可以决定是否允许删除或修改操作。

访问权限

数据库系统平常使用时,一般不会用超级管理员用户,只有在特殊场景时才会用超级管理员。
我们创建一个新用户 manager 成为 数据库的db_factory所有者,由它来全权负责,给其它使用者分配权限;
再创建一个 hr 的用户,它可以使用数据库,比如创建表等,但不能对数据库进行修改;

创建普通用户

新建两个普通用户,指定密码为123456;

postgres=# create user manager with password '123456';
CREATE ROLE
postgres=# create user hr with password '123456';
CREATE ROLE

这里有个细节,最后输出是 CREATE ROLE ,明明创建的是 create user,这个到用户权限章节再给大家分享;

修改所有者

将超级管理员的职责归位,用户的数据库应该由各自的管理员负责,所以这里将数据库 db_factory 的管理权限交给 manager用户。

当然这个命令是非常危险的,最好在一开始创建时就分配好owner。

postgres=# alter database db_factory owner to manager ;
ALTER DATABASE
db_factory=> \l
                                                        List of databases
    Name     |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges
-------------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
 db_factory  | manager  | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =Tc/manager          +
             |          |          |                 |             |             |            |           | manager=CTc/manager  +
             |          |          |                 |             |             |            |           | hr=CTc/manager
 db_factory1 | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 postgres    | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           |
 template0   | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
             |          |          |                 |             |             |            |           | senllang=CTc/senllang
 template1   | senllang | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US      |           | =c/senllang          +
             |          |          |                 |             |             |            |           | senllang=CTc/senllang
(5 rows)

通过查看,db_factory 的owner确实变为了 manager用户,Access privileges字段中也有了权限信息;

有人要说了,为什么这么麻烦呢? 举个例子,这个数据库系统被三个业务共同使用,它们对应三个数据库,如果都由超级管理员用户管理,那每天都会吵架 “谁又动了我的库“,哈哈~

授予访问权限

用普通用户 manager 登录到 数据库 db_factory;可以退出 \q 之后重新登录,也可以用之前分享的方法 \c进行切换数据库和用户;

hr 用户授予在当前数据库中的create 权限;

postgres=# \c db_factory manager
You are now connected to database "db_factory" as user "manager".

db_factory=> grant ALL ON database db_factory TO hr ;
GRANT

用普通用户 hr 登录到 数据库 db_factory; 尝试创建表

db_factory=> \c db_factory hr
You are now connected to database "db_factory" as user "hr".

db_factory=> CREATE TABLE employees (
db_factory(>   employee_id SERIAL PRIMARY KEY,
db_factory(>   name VARCHAR(100),
db_factory(>   department VARCHAR(100),
db_factory(>   position VARCHAR(100),
db_factory(>   hire_date DATE,
db_factory(>   salary NUMERIC(10, 2)
db_factory(> );
ERROR:  permission denied for schema public
LINE 1: CREATE TABLE employees (

居然失败了,不过从报错信息,看出来对于默认的schema,也就是public没有权限;通过前面命名空间的介绍,我们知道有在database之下还有schema,表必须在某个schema中;

前面授予了database下的create权限,但是没有schema的权限;
下面授予schema下的create权限;

postgres=# \c db_factory manager
You are now connected to database "db_factory" as user "manager".

db_factory=> grant create on schema public  TO hr;
GRANT

新数据库中创建表

用普通用户 hr 登录到 数据库 db_factory

db_factory=> \c db_factory hr
You are now connected to database "db_factory" as user "hr".
db_factory=> CREATE TABLE employees (
  employee_id SERIAL PRIMARY KEY,
  name VARCHAR(100),
  department VARCHAR(100),
  position VARCHAR(100),
  hire_date DATE,
  salary NUMERIC(10, 2)
);
CREATE TABLE
db_factory=> \d
                   List of relations
 Schema |           Name            |   Type   | Owner
--------+---------------------------+----------+-------
 public | employees                 | table    | hr
 public | employees_employee_id_seq | sequence | hr
(2 rows)

创建雇员表成功,它的owner就是创建者hr,所以hr用户拥有该表的所有权限;这样就是一种分层管理的策略,符合现实中的人员管理层级关系。

结尾

非常感谢大家的支持,在浏览的同时别忘了留下您宝贵的评论,如果觉得值得鼓励,请点赞,收藏,我会更加努力!

作者邮箱:study@senllang.onaliyun.com
如有错误或者疏漏欢迎指出,互相学习。

注:未经同意,不得转载!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【postgresql 基础入门】创建数据库的方法,存储位置,决定自己的数据的访问用户和范围 的相关文章

  • 将计算列设置为非空时遇到问题

    我在将计算列设置为时遇到问题not null 我想要实现的是C001 C002 等 同时将其设置为not null 我在论坛上读到 这可以通过使用 NULL 值的默认值 0 来实现 E g ISNULL Price Taxes 0 我尝试应
  • PostgreSQL 触发器不返回任何内容

    我在创建时有一个 PostgreSQL 触发器 它基本上将插入重定向到子表中 插入记录后 我想中止请求以避免重复数据 据我所知 执行此操作的唯一方法是返回NULL在触发器中 问题是我需要返回记录才能获取 ID 如果我回来NULL 我得到 N
  • 为什么Mysql的Group By和Oracle的Group by行为不同

    为什么Mysql的Group By和Oracle的Group by行为不同 我多次发现 Mysql group By 功能和 Oracle 的 GroupBy 功能表现不同 很多时候我在Oracle中发现错误 这实际上是错误的查询 但是My
  • SQLAlchemy - 连接表关系上的 order_by

    我正在使用声明式 SQLAlchemy 并且有三个模型 Role Permission and RolePermission 在我的Role模型 我有以下内容 class Role Base name Column u NAME VARCH
  • Azure PostgreSQL 时间点还原不起作用

    我们在 Azure 中有一个 Postgre 数据库 但遇到了一个问题 表中的所有行都被删除 我们尝试使用 de azure 门户中的 时间点还原 选项 但创建的数据库与当前运行的数据库具有相同的数据 我们还尝试了其他日期和时间 数据库问题
  • 按名称删除 jsonb 数组项

    我有下表 CREATE TABLE country id INTEGER NOT NULL PRIMARY KEY name VARCHAR 50 extra info JSONB INSERT INTO country id extra
  • 数据库函数 VS Case 语句

    昨天我们遇到了一个场景 必须获取 a 的类型db field在此基础上我们必须编写该字段的描述 喜欢 Select Case DB Type When I Then Intermediate When P Then Pending Else
  • 通过一个表中的列更新另一表中的列

    我有两张桌子 A 和 B 两者都有一个共同的列 name 并通过列 id 相互链接 表A中的 name 列是空的 而表B中有数据 我的任务是用相应的id填充从表B到表A的该列中的所有数据 我正在使用以下查询 UPDATE A SET A n
  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • java.sql.SQLException: ORA-01005: 给定的密码为空;登录被拒绝

    我在尝试连接到数据库时遇到以下异常 java sql SQLException ORA 01005 null password given logon denied at oracle jdbc driver T4CTTIoer proce
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • Azure PostgreSQL 服务器服务排序规则创建错误

    我正在尝试将当前现有数据库导入到 Azure PostgreSQL 服务器上运行的 postgre 实例 我已经将我的azure postgresql服务器参数配置为使用UTF8编码 我不确定它是否在不重新启动的情况下应用 但即使我没有重新
  • 查询查找表中姓名和号码之间的重复项

    SELECT count lower name number FROM tbl GROUP BY lower name number HAVING count gt 1 输入表1 slno name number 1 aaa 111 2 A
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • 如何使用flyway将数据从一个DB迁移到另一个DB?

    我在不同的服务器上有两个 postgreSql DB 比如说 A 和 B 我可以使用 Flyway 一些如何将所有数据从 DB A 复制到新设置且为空的 B 如果有人指出我正确的方向和工具 这将很有帮助 要求是通过某种工具自动化将数据从一个
  • 查找一列中具有相同值而另一列中具有其他值的行?

    我有一个 PostgreSQL 数据库 将用户存储在users他们参与的表格和对话conversation桌子 由于每个用户可以参与多个对话 并且每个对话可以涉及多个用户 因此我有一个conversation user链接表来跟踪哪些用户正
  • 选择表中的人员并排除妻子,但合并他们的名字

    我有一张桌子Person PersonID FirstName LastName 1 John Doe 2 Jane Doe 3 NoSpouse Morales 4 Jonathan Brand 5 Shiela Wife And a R
  • Sql 查询抛出标识符太长。最大长度为 128

    我正在处理一个简单的更新查询 在执行查询时看到以下错误 我非常清楚 这根本不应该是一个长度问题 可能是什么问题 Error 以identifier开头的标识符太长 最大长度为 128 我的查询 update dbo DataSettings
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • SQL查询:按字符长度排序?

    是否可以按字符总数对sql数据行进行排序 e g SELECT FROM database ORDER BY data length 我想你想用这个 http dev mysql com doc refman 5 0 en string f

随机推荐

  • 进程的相概念(linux系统编程)

    什么是程序 什么是进程 有什么区别 程序是静态的概念 gcc xx x o pro 磁盘中生成的pro就是程序 进程是程序的一次运行活动 通俗的讲就是程序跑起来了 系统中就多了一个进程 在Linux里面怎么查看系统中有哪些进程 使用ps指令
  • linux的超级管理用户

    超级管理用户 也称为root用户 是Linux系统中最高权限用户 root用户具有完全控制系统的权限 可以执行任何操作 包括管理文件 修改配置 安装软件等 下面是root用户的用法大全 切换到root用户 在终端中输入以下命令 su roo
  • 青龙面板使用教程,以及安装

    1 青龙面板使用教程 以及安装 首先青龙面板是在docker里面的 我们要安装一个docker 我这里只有debian 11 安装的教程 如何在debian11上安装docker 知乎 这个文章不错了 按命令执行就好了 其他操作系统的 去网
  • K8S-11--prometheus--(监控基础/prometheus基础/grafana/promQL/exporter/cadvisor)

    一 监控基础 一 监控简介 监控模型 端监控 业务层监控 应用层监控 中间件监控 系统层监控 1 监控概述 web监控 打开速度 URL打开状态码 API接口可用性 业务监控 订单交易量 活跃用户量 支付量 中间件监控 数据库 redis
  • 跳出ping++退款的坑

    近期在项目的开发过程中 需要用到ping 的退款功能 由于使用的版本比官方提供的要低2个小版本 因此问题并不是很大 但是由于官方文档有些内容写的比较含蓄 因此遇到了一些问题 我们可以通过如下的方式来获取SDK的版本 gt gt gt imp
  • STM32开发环境配置相关问题记录

    1 编译时出现 error 35 error directive Please select first the target STM32F10x device used 解决方案 点选options for target 选择C C 在d
  • K8S deployment挂载

    Deployment部署文件 apiVersion apps v1 kind Deployment metadata annotations deployment kubernetes io revision 1 kubectl kuber
  • Spring Security认证成功后回跳(解决前后端分离下OAuth2认证成功回跳)

    前言 Spring Security 后面简称SS 用了很长时间了 但之前一直没注意到一个有趣的特性 直到最近弄前后端分离 在OAuth2提供者 github 认证后 需要跳回前端页面 前端页面和服务端不在同个域下 然后突然一般情况下 同域
  • 鸿蒙系统做服务器,鸿蒙升级第一夜服务器崩了,有人等到凌晨3点,称升级后内存变大...

    编 赵艳秋 6月2日晚间 华为宣布推出HarmonyOS 2 华为 百 款设备将陆续启动HarmonyOS 2升级 不少华为用户则经历了艰难的一夜 最大规模升级第一夜服务器崩了 有如五一小长假期间的在线购票系统12306 6月2日晚 因为太
  • 半径为r的均匀带电球体_放于真空中半径为R,带电量为q的均匀带电球体,求球内外各点电势分布...

    展开全部 当半径r 一个均匀带电的球壳 带电量为q 则e68a84e8a2ad62616964757a686964616f31333431353338对壳外部产生的场强为E q 4 r 内部场强为零 则以上均匀带电的球内半径为r处 电场强度
  • C语言删除字符串中某一指定字符

    include
  • Python数据挖掘和解析算法

    机器学习是计算机科学的一个分支 它利用过去的经验来学习并利用其知识来做出未来的决策 机器学习是计算机科学 工程和统计学的交叉点 机器学习的目标是概括一个可检测的模式或从给定的例子中创建一个未知的规则 机器学习领域的概述如下 监督学习 这是教
  • 11.3外汇黄金价格投资策略、期货原油最新价格布局及指导

    黄金消息面与技术面解析 消息面 周二 11月2日 国际金价持稳 在通胀压力不断增加以及对经济增长放缓的担忧之际 市场参与者等待美联储本周政策会议结果 美国物价和薪资涨幅正处于数十年来的高位 本周可能让美联储官员面临挑战 分析师预计 在央行收
  • STM32串口烧写程序

    STM32烧写注意 1 必须使用串口1烧写 2 烧写 BOOT0置1 BOOT1置0 运行 BOOT0置0 BOOT1置任意 3 使用FLYMCU烧写软件 4 NRST引脚电路设计成悬空 按键按下 拉低 步骤 1 买一根 TTL串口线分别把
  • 全国各省、市、区(sql语句)

    文章目录 一 省份 数据表 二 市 数据表 注意 因为到县sql语句太多文章限字数上传不全 所以一半放到了另外的一篇文章上 三 上部分区 县 数据表 四 中部分区 县 数据表 五 下部分区 县 数据表 六 在在下部分区 县 数据表 返回项目
  • 股票分析,利用线性回归实时预测股价,只需要提供股票代码即可爬取相应股票数据并建模

    这里参考了别人的代码 并引用了tushare模块中定义的接口自动获取了依据 股票代码来获取数据 此篇文章提供了 1 一个简单通过接口爬取csv数据的方法 2 一个处理csv数据的简单方法 3 依据数据进行特征提取建立简单的股价预测模型 如下
  • 关于Pygame运行无响应问题的办法(已解决)

    目录 pygame程序运行时需要初始化 在关闭运行页面的时候无响应 pygame程序运行时需要初始化 如下代码运行后无反应 import sys import pygame size width height 600 400 screen
  • 华为机试2016

    编程题 最高分是多少 老师想知道从某某同学当中 分数最高的是多少 现在请你编程模拟老师的询问 当然 老师有时候需要更新某位同学的成绩 输入描述 输入包括多组测试数据 每组输入第一行是两个正整数N和M 0 lt N lt 30000 0 lt
  • 1.5.1 AlexNet

    目录 五 AlexNet 5 1 ReLU 激活函数 5 2 局部响应正则化 5 3 数据增强 5 4 Dropout 5 5 网络整体架构 5 6 小结 五 AlexNet AlexNet 是 2012 年第 3届 ILSVRC Imag
  • 【postgresql 基础入门】创建数据库的方法,存储位置,决定自己的数据的访问用户和范围

    创建数据库 专栏内容 postgresql内核源码分析 手写数据库toadb 并发编程 开源贡献 toadb开源库 个人主页 我的主页 管理社区 开源数据库 座右铭 天行健 君子以自强不息 地势坤 君子以厚德载物 系列文章 入门准备 pos