如何在windows下手动初始化PostgreSQL数据库

如何在windows下手动初始化PostgreSQL数据库,第1张

PostgreSQL数据库手动初始化步骤:

1、创建用户postgres,密码同样是postgres:

net user postgres postgres /add

2、在数据库根目录下建立data目录:

C:\Program Files\PostgreSQL\9.3>md data

3、去掉administrator对data目录的权限:

C:\Program Files\PostgreSQL\9.3>cacls data /e /t /r administrator

处理的目录: C:\Program Files\PostgreSQL\9.3\data

4、将data目录的权限赋给postgres用户:

C:\Program Files\PostgreSQL\9.3>cacls data /e /t /g postgres:C

处理的目录: C:\Program Files\PostgreSQL\9.3\data

5、用postgres用户打开cmd

C:\Program Files\PostgreSQL\9.3>runas /user:postgres cmd.exe

输入 postgres 的密码:

试图将 cmd.exe 作为用户 "SURE-PC\postgres" 启动...

6、进行初始化,初始化用户为postgres,字符集为utf8,locale为C:

C:\Program Files\PostgreSQL\9.3\bin>initdb.exe -D ../data -E utf8 --locale C -U

postgres

The files belonging to this database system will be owned by user "postgres".

This user must also own the server process.

The database cluster will be initialized with locale "C".

The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory ../data ... ok

creating subdirectories ... ok

selecting default max_connections ... 100

selecting default shared_buffers ... 128MB

creating configuration files ... ok

creating template1 database in ../data/base/1 ... ok

initializing pg_authid ... ok

initializing dependencies ... ok

creating system views ... ok

loading system objects' descriptions ... ok

creating collations ... not supported on this platform

creating conversions ... ok

creating dictionaries ... ok

setting privileges on built-in objects ... ok

creating information schema ... ok

loading PL/pgSQL server-side language ... ok

vacuuming database template1 ... ok

copying template1 to template0 ... ok

copying template1 to postgres ... ok

syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections

You can change this by editing pg_hba.conf or using the option -A, or

--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

"postgres" -D "../data"

or

"pg_ctl" -D "../data" -l logfile start

C:\Program Files\PostgreSQL\9.3\bin>

7、启动数据库,进入客户端:

C:\Program Files\PostgreSQL\9.3\bin>"pg_ctl" -D "../data" start

server starting

C:\Program Files\PostgreSQL\9.3\bin>LOG: database system was shut down at 2014-

09-18 10:19:54 HKT

LOG: autovacuum launcher started

C:\Program Files\PostgreSQL\9.3\bin>LOG: database system is ready to accept con

nections

C:\Program Files\PostgreSQL\9.3\bin>psql.exe

psql (9.3.5)

Type "help" for help.

postgres=#

8、初始化完成。

初始化成功后软件默认已经初始化了,不能再次进行初始化账套. *** 作步骤如下:1.打开软件的安装目录,找到x:\cyt\server\file文件夹中的system.ini,把‘isinit=Y’改成'isinit=N'保存退出。2.重新打开应用服务器,输入数据库密码,点初始化账套。3.如果之前误删的数据库有备份,打开系统工具-还原该数据库即可。

方法/步骤

1

压缩包安装方式

从官网上下载mysql-5.7.18-winx64.zip,将其解压,接下来的安装是通过命令来安装MySQL数据库的。

(1)mysql-5.7.18-winx64.zip解压到D:\文件下,解压目录如下:

(2)配置环境变量

编辑path系统变量,将%MYSQL_HOME%\bin添加到path变量后,如果是里面含有多个,请添加到最后,以分号;为分隔符

Path:

D:\mysql-5.7.18-winx64\bin

(3)(如果不是管理员的请打开命令提示符以管理员身份运行),运行cmd命令行窗口,cd到D:\mysql-5.7.18-winx64\bin下

命令为:cd  /d D:\mysql-5.7.18-winx64\bin

(3)安装MySQL

mysqld  install,运行命令后报错,提示“无法启动此程序,因为计算机中丢失MSVCR120.dll。尝试重新安装该程序已解决问题”

解决方案:上网下载MSVCR120.dll文件,放在C:\Windows\System32文件夹中,或者去C:\Windows\System32 ,查找一下MSVCR120.dll文件,我的电脑发现了msvcr120_clr0400.dll  这个文件,所以复制一份副本,然后改了一下副本的文件名即可。

同时还需要msvcp120.dll这个文件,请没有的筒靴一并处理了。

有的电脑可能安装某种程序,是不会有提示的。因为这些文件已经存在。

(4)继续运行命令:

mysqld install 成功安装mysql服务

(5)启动MySQL服务。

net start mysql将启动MySQL服务。值得注意的是用命令安装的MySQL在Windows系统下默认服务名为mysql,默认密码为空。

-------运行结果:报错

解决方案:cmd命令行提供的错误消息有限,所以我们需要找到mysql的错误日志,分析日志进而得出是什么问题。

进D:\mysql-5.7.18-winx64目录下,创建一个文件夹data目录用以存放日志。

然后重新运行 net start mysql,来生成日志文件。

D:\mysql-5.7.18-winx64\data文件夹中生成的文件中,有一个文件名是以.err后缀的文件,这个就是报错信息日志,我的电脑上PC-201511181234.err,前面是计算机的名字。

(6) 查看日志文件

用uedit64 打开PC-201511181234.err ,发现有如下的错误

2017-06-28T09:21:53.475478Z 0 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

......

2017-06-28T09:21:53.595485Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

2017-06-28T09:21:53.598485Z 0 [ERROR] Aborting

....

原因分析:没有一个初始化数据库,不能启动mysql守护进程。

(7) 初始化数据库--建立配置文件my.ini和删除data目录

删除掉D:\mysql-5.7.18-winx64目录下的data目录。否则运行初始化数据库命令也会报错。

新建一个文件名字:my.ini放到bin目录,文件内容:

[mysqld]

basedir=D:\mysql-5.7.18-winx64        ----mysql安装的目录

datadir=D:\mysql-5.7.18-winx64\data -----mysql下data目录

(如果不放my.ini到bin目录,运行初始化数据库命令就会报错:

2017-06-28T09:32:22.326446Z 0 [ERROR] --initialize specified but the data direct

ory exists and is not writable. Aborting.

(8) 初始化数据库

命令行执行: mysqld --initialize --user=mysql --console

先执行以上命令, 生成库. 注意有个临时密码, 要记下来.

最后一行:loaclhost:moMlyqX#j6Ky,其中moMlyqX#j6Ky这个就是临时密码,你登陆mysql数据库的时候需要用到。

(9) 启动服务

net start mysql----启动mysql服务

net stop mysql----停止mysql服务

如果不运行服务,直接进入mysql,会报错:

(8) 进入MySQL并修改密码

mysql -u root -p,密码为moMlyqX#j6Ky。显示“mysql>”表示进入MySQL

修改密码:

mysql>set password = password('root')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9403041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存