Server IP : 103.119.228.120 / Your IP : 3.136.22.204 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/ssl/share/doc/postgresql-9.2.24/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Creating a Database</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Getting Started" HREF="tutorial-start.html"><LINK REL="PREVIOUS" TITLE="Architectural Fundamentals" HREF="tutorial-arch.html"><LINK REL="NEXT" TITLE="Accessing a Database" HREF="tutorial-accessdb.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Architectural Fundamentals" HREF="tutorial-arch.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="tutorial-start.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 1. Getting Started</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Accessing a Database" HREF="tutorial-accessdb.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="TUTORIAL-CREATEDB" >1.3. Creating a Database</A ></H1 ><P > The first test to see whether you can access the database server is to try to create a database. A running <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > server can manage many databases. Typically, a separate database is used for each project or for each user. </P ><P > Possibly, your site administrator has already created a database for your use. He should have told you what the name of your database is. In that case you can omit this step and skip ahead to the next section. </P ><P > To create a new database, in this example named <TT CLASS="LITERAL" >mydb</TT >, you use the following command: </P><PRE CLASS="SCREEN" ><SAMP CLASS="PROMPT" >$</SAMP > <KBD CLASS="USERINPUT" >createdb mydb</KBD ></PRE ><P> If this produces no response then this step was successful and you can skip over the remainder of this section. </P ><P > If you see a message similar to: </P><PRE CLASS="SCREEN" >createdb: command not found</PRE ><P> then <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > was not installed properly. Either it was not installed at all or your shell's search path was not set to include it. Try calling the command with an absolute path instead: </P><PRE CLASS="SCREEN" ><SAMP CLASS="PROMPT" >$</SAMP > <KBD CLASS="USERINPUT" >/usr/local/pgsql/bin/createdb mydb</KBD ></PRE ><P> The path at your site might be different. Contact your site administrator or check the installation instructions to correct the situation. </P ><P > Another response could be this: </P><PRE CLASS="SCREEN" >createdb: could not connect to database postgres: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?</PRE ><P> This means that the server was not started, or it was not started where <TT CLASS="COMMAND" >createdb</TT > expected it. Again, check the installation instructions or consult the administrator. </P ><P > Another response could be this: </P><PRE CLASS="SCREEN" >createdb: could not connect to database postgres: FATAL: role "joe" does not exist</PRE ><P> where your own login name is mentioned. This will happen if the administrator has not created a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user account for you. (<SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user accounts are distinct from operating system user accounts.) If you are the administrator, see <A HREF="user-manag.html" >Chapter 20</A > for help creating accounts. You will need to become the operating system user under which <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > was installed (usually <TT CLASS="LITERAL" >postgres</TT >) to create the first user account. It could also be that you were assigned a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user name that is different from your operating system user name; in that case you need to use the <TT CLASS="OPTION" >-U</TT > switch or set the <TT CLASS="ENVAR" >PGUSER</TT > environment variable to specify your <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user name. </P ><P > If you have a user account but it does not have the privileges required to create a database, you will see the following: </P><PRE CLASS="SCREEN" >createdb: database creation failed: ERROR: permission denied to create database</PRE ><P> Not every user has authorization to create new databases. If <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > refuses to create databases for you then the site administrator needs to grant you permission to create databases. Consult your site administrator if this occurs. If you installed <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > yourself then you should log in for the purposes of this tutorial under the user account that you started the server as. <A NAME="AEN473" HREF="#FTN.AEN473" ><SPAN CLASS="footnote" >[1]</SPAN ></A > </P ><P > You can also create databases with other names. <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > allows you to create any number of databases at a given site. Database names must have an alphabetic first character and are limited to 63 bytes in length. A convenient choice is to create a database with the same name as your current user name. Many tools assume that database name as the default, so it can save you some typing. To create that database, simply type: </P><PRE CLASS="SCREEN" ><SAMP CLASS="PROMPT" >$</SAMP > <KBD CLASS="USERINPUT" >createdb</KBD ></PRE ><P> </P ><P > If you do not want to use your database anymore you can remove it. For example, if you are the owner (creator) of the database <TT CLASS="LITERAL" >mydb</TT >, you can destroy it using the following command: </P><PRE CLASS="SCREEN" ><SAMP CLASS="PROMPT" >$</SAMP > <KBD CLASS="USERINPUT" >dropdb mydb</KBD ></PRE ><P> (For this command, the database name does not default to the user account name. You always need to specify it.) This action physically removes all files associated with the database and cannot be undone, so this should only be done with a great deal of forethought. </P ><P > More about <TT CLASS="COMMAND" >createdb</TT > and <TT CLASS="COMMAND" >dropdb</TT > can be found in <A HREF="app-createdb.html" ><SPAN CLASS="APPLICATION" >createdb</SPAN ></A > and <A HREF="app-dropdb.html" ><SPAN CLASS="APPLICATION" >dropdb</SPAN ></A > respectively. </P ></DIV ><H3 CLASS="FOOTNOTES" >Notes</H3 ><TABLE BORDER="0" CLASS="FOOTNOTES" WIDTH="100%" ><TR ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="5%" ><A NAME="FTN.AEN473" HREF="tutorial-createdb.html#AEN473" ><SPAN CLASS="footnote" >[1]</SPAN ></A ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="95%" ><P > As an explanation for why this works: <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user names are separate from operating system user accounts. When you connect to a database, you can choose what <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user name to connect as; if you don't, it will default to the same name as your current operating system account. As it happens, there will always be a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user account that has the same name as the operating system user that started the server, and it also happens that that user always has permission to create databases. Instead of logging in as that user you can also specify the <TT CLASS="OPTION" >-U</TT > option everywhere to select a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > user name to connect as. </P ></TD ></TR ></TABLE ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="tutorial-arch.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="tutorial-accessdb.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Architectural Fundamentals</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="tutorial-start.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Accessing a Database</TD ></TR ></TABLE ></DIV ></BODY ></HTML >