Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    Openerp的数据库该怎么设置

    Odoo 安装指南
    4
    14
    22573
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • P
      paridis 最后由 编辑

      在openerp-server.conf中的设置为

      db_name =
      db_user = openerp
      db_password = openerp

      用pgadmin3登陆PostgreSQL没有问题。

      但是,每次用openerp-client都是显示,账套无法连接到服务器,确定按钮是灰色的无法点击。

      /openerp-server中显示

      [2009-08-31 10:48:20,894] INFO:server:version - 5.0.0
      [2009-08-31 10:48:20,894] INFO:server:addons_path - /usr/lib/openerp-server/addons
      [2009-08-31 10:48:20,895] INFO:server:database hostname - localhost
      [2009-08-31 10:48:20,895] INFO:server:database port - 5432
      [2009-08-31 10:48:20,895] INFO:server:database user - root
      [2009-08-31 10:48:20,895] INFO:objects:initialising distributed objects services
      [2009-08-31 10:48:22,059] INFO:web-services:starting XML-RPC services, port 8069
      [2009-08-31 10:48:22,060] INFO:web-services:starting NET-RPC service, port 8070
      [2009-08-31 10:48:22,060] INFO:web-services:the server is running, waiting for connections...

      [2009-08-31 10:50:19,812] INFO:dbpool:Connecting to template1
      [2009-08-31 10:50:19,859] ERROR:dbpool:Unable to connect to template1: 致命错误: role "root" does not exist

      为什么会用root登陆呢?要在哪里设置?

      1 条回复 最后回复 回复 引用 0
      • digitalsatori
        digitalsatori 管理员 最后由 编辑

        不知道你在什么平台上运行openerp,但是从你的log信息猜想你的Openerp服务器是运行在Linux上的。

        对于Linux,openerp的默认配置文件是 .openerp_serverrc,openerp-server.conf一般是windows下的默认配置文件名。

        如果我的猜测不错,那么openerp实际上并没有读取到你的配置文件,所以当服务器需要连接数据库服务器时,使用的用户是当前运行openerp的用户。你用root 来运行openerp这个习惯也不好。

        当然你可以使用下面的命令来使openerp使用非默认的配置文件:

        openerp-server.py --config=/PATH/TO/openerp-server.conf
        

        关于如何生成和配置openerp服务器的配置文件,请使用下面的命令了解:

        openerp-server.py --help
        

        [[i] 本帖最后由 digitalsatori 于 2009-8-31 13:21 编辑 [/i]]

        【上海先安科技】(tony AT openerp.cn)

        1 条回复 最后回复 回复 引用 0
        • P
          paridis 最后由 编辑

          谢谢您的答复,我是在ubuntu9.04上安装openerp5.0。

          但是我在系统里搜索不到openerp_serverrc文件,只有一个openerp_serverrc.5.gz的压缩包。
          openerp-server.conf在/etc文件夹下,应该就是openerp的配置文件了把,不过想不通为什么没有被读取。

          现在刚换到ubuntu系统,对ubuntu还不熟,弱弱的问一下版主,上面那些命令要在哪个特定的目录里运行吗,在终端里面运行提示命令不存在?

          1 条回复 最后回复 回复 引用 0
          • digitalsatori
            digitalsatori 管理员 最后由 编辑

            你是用 apt-get 安装的openerp吧,这个安装包我也不是很熟。不过你还是可以自己来生成openerp的配置文件的,比如:

            openerp-server --db_user=openerp --db_password=openerp --addons_path=ADDONS_PATH --save
            

            其中 --save 会使openerp在当前用户的$HOME目录下生成 .openerp-serverrc 文件

            【上海先安科技】(tony AT openerp.cn)

            1 条回复 最后回复 回复 引用 0
            • P
              paridis 最后由 编辑

              为什么在终端运行openerp-server --hlep可以显示很详细的帮助信息

              Usage: openerp-server.py [options]
              Options:
              --version show program's version number and exit
              -h, --help show this help message and exit
              -c CONFIG, --config=CONFIG
              specify alternate config file
              -s, --save save configuration to ~/.openerp_serverrc
              --pidfile=PIDFILE file where the server pid will be stored
              -n INTERFACE, --interface=INTERFACE
              specify the TCP IP address
              -p PORT, --port=PORT specify the TCP port
              --net_interface=NETINTERFACE
              specify the TCP IP address for netrpc
              --net_port=NETPORT specify the TCP port for netrpc

              …

              但是我运行openerp-server.py提示找不到命令?

              如果openerp-server.py可以运行的话,用 --db_user=DB_USER 和 --db_password=DB_PASSWORD应该就可以解决问题了。

              不过还是搞不清楚openerp的配置文件是哪个。

              [[i] 本帖最后由 paridis 于 2009-8-31 20:24 编辑 [/i]]

              1 条回复 最后回复 回复 引用 0
              • O
                oldrev 最后由 编辑

                需要先配置 postgresql ,创建好 pg 帐号再设置 openerp

                1 条回复 最后回复 回复 引用 0
                • digitalsatori
                  digitalsatori 管理员 最后由 编辑

                  [quote]原帖由 [i]paridis[/i] 于 2009-8-31 20:18 发表 shine-it.net/redirect.php?goto=findpost&pid=2642&ptid=610
                  为什么在终端运行openerp-server --hlep可以显示很详细的帮助信息
                  [/quote]

                  这是因为你的安装包生成了一个称为openerp-server的脚本,通过这个脚本再去调用openerp-server.py的,这个脚本在你的搜索路径中,而openerp-server.py却不在。
                  你可以象使用openerp-server.py这样来使用openerp-server,也就是说对openerp-server.py适用的命令行参数也适用于openerp-server

                  【上海先安科技】(tony AT openerp.cn)

                  1 条回复 最后回复 回复 引用 0
                  • P
                    paridis 最后由 编辑

                    老大,谢了,又明白了一点点。

                    不过又出现了一些问题,

                    指定用户登陆,用的却是别的数据库:[code]
                    [email protected]:~$ openerp-server -r openerp
                    [2009-08-31 21:48:23,963] INFO:server:version - 5.0.0
                    [2009-08-31 21:48:23,963] INFO:server:addons_path -
                    /usr/lib/openerp-server/addons
                    [2009-08-31 21:48:23,963] INFO:server:database hostname - localhost
                    [2009-08-31 21:48:23,964] INFO:server:database port - 5432
                    [2009-08-31 21:48:23,964] INFO:server:database user - openerp
                    [2009-08-31 21:48:23,964] INFObjects:initialising distributed objects
                    services
                    [2009-08-31 21:48:24,199] INFO:web-services:starting XML-RPC services,
                    port 8069
                    [2009-08-31 21:48:24,199] INFO:web-services:starting NET-RPC service,
                    port 8070
                    [2009-08-31 21:48:24,200] INFO:web-services:the server is running,
                    waiting for connections...
                    [2009-08-31 21:48:32,287] INFO:dbpool:Connecting to template1
                    [2009-08-31 21:48:32,300] INFO:dbpool:Closing all connections to template1
                    Closing connection <connection object at 0x152cc80; dsn: 'user=openerp
                    dbname=template1', closed: 0>
                    [/code]指定数据库用户名和数据库,我也不知道是什么错误了:[code]
                    [email protected]:~$ openerp-server -r openerp
                    [2009-08-31 21:48:23,963] INFO:server:version - 5.0.0
                    [2009-08-31 21:48:23,963] INFO:server:addons_path -
                    /usr/lib/openerp-server/addons
                    [2009-08-31 21:48:23,963] INFO:server:database hostname - localhost
                    [2009-08-31 21:48:23,964] INFO:server:database port - 5432
                    [2009-08-31 21:48:23,964] INFO:server:database user - openerp
                    [2009-08-31 21:48:23,964] INFObjects:initialising distributed objects
                    services
                    [2009-08-31 21:48:24,199] INFO:web-services:starting XML-RPC services,
                    port 8069
                    [2009-08-31 21:48:24,199] INFO:web-services:starting NET-RPC service,
                    port 8070
                    [2009-08-31 21:48:24,200] INFO:web-services:the server is running,
                    waiting for connections...
                    [2009-08-31 21:48:32,287] INFO:dbpool:Connecting to template1
                    [2009-08-31 21:48:32,300] INFO:dbpool:Closing all connections to template1
                    Closing connection <connection object at 0x152cc80; dsn: 'user=openerp
                    dbname=template1', closed: 0>
                    [/code]指定数据库,它却用系统里的用户登陆:[code]
                    [email protected]:~$ openerp-server -d openerp
                    [2009-08-31 21:52:16,328] INFO:server:version - 5.0.0
                    [2009-08-31 21:52:16,328] INFO:server:addons_path -
                    /usr/lib/openerp-server/addons
                    [2009-08-31 21:52:16,329] INFO:server:database hostname - localhost
                    [2009-08-31 21:52:16,329] INFO:server:database port - 5432
                    [2009-08-31 21:52:16,329] INFO:server:database user - wen
                    [2009-08-31 21:52:16,329] INFObjects:initialising distributed objects
                    services
                    [2009-08-31 21:52:16,563] INFO:dbpool:Connecting to openerp
                    [2009-08-31 21:52:16,578] ERROR:dbpool:Unable to connect to openerp: 致
                    命错误: role "wen" does not exist
                    Traceback (most recent call last):
                    File "./openerp-server.py", line 108, in <module>
                    pooler.get_db_and_pool(db, update_module=tools.config['init'] or
                    tools.config['update'])
                    File "/usr/lib/openerp-server/pooler.py", line 29, in get_db_and_pool
                    db = get_db_only(db_name)
                    File "/usr/lib/openerp-server/pooler.py", line 71, in get_db_only
                    db = sql_db.db_connect(db_name)
                    File "/usr/lib/openerp-server/sql_db.py", line 239, in db_connect
                    return PoolManager.get(db_name)
                    File "/usr/lib/openerp-server/sql_db.py", line 223, in get
                    cls._pools[db_name] = ConnectionPool(ThreadedConnectionPool(1,
                    cls.maxconn, cls.dsn(db_name)), db_name)
                    File "/usr/lib/python2.5/site-packages/psycopg2/pool.py", line 161, in
                    init
                    self, minconn, maxconn, *args, **kwargs)
                    File "/usr/lib/python2.5/site-packages/psycopg2/pool.py", line 76, in
                    init
                    self._connect()
                    File "/usr/lib/python2.5/site-packages/psycopg2/pool.py", line 80, in
                    _connect
                    conn = psycopg2.connect(*self._args, **self._kwargs)
                    psycopg2.OperationalError: 致命错误: role "wen" does not exist
                    [/code]我想可能要指定配置文件才能解决问题,顺便问一下

                     openerp-server&#46;py --config=/PATH/TO/openerp-server&#46;conf
                    

                    /PATH/TO/openerp-server.conf是指哪里的地址?
                    如果我直接用openerp-server.py --config=/etc/openerp-server.conf,是不是就指定了/etc/openerp-server.conf为openerp的配置文件了呢?

                    [[i] 本帖最后由 paridis 于 2009-9-1 16:02 编辑 [/i]]

                    1 条回复 最后回复 回复 引用 0
                    • P
                      paridis 最后由 编辑

                      为什么指定openerp的配置文件会出错呢?

                      [code]
                      [email protected]:/usr/bin$ openerp-server -c /etc/openerp-server.conf
                      ERROR: couldn't create the logfile directory. Logging to the standard
                      output.
                      [2009-09-01 22:08:46,708] INFO:server:version - 5.0.0
                      [2009-09-01 22:08:46,709] INFO:server:addons_path -
                      /usr/lib/openerp-server/addons
                      [2009-09-01 22:08:46,709] INFO:server:database hostname - localhost
                      [2009-09-01 22:08:46,709] INFO:server:database port - 5432
                      [2009-09-01 22:08:46,709] INFO:server:database user - openerp
                      [2009-09-01 22:08:46,710] INFO:objects:initialising distributed objects
                      services
                      [2009-09-01 22:08:46,986] INFO:dbpool:Connecting to openerp
                      Traceback (most recent call last):
                      File "./openerp-server.py", line 108, in <module>
                      pooler.get_db_and_pool(db, update_module=tools.config['init'] or
                      tools.config['update'])
                      File "/usr/lib/openerp-server/pooler.py", line 40, in get_db_and_pool
                      addons.load_modules(db, force_demo, status, update_module)
                      File "/usr/lib/openerp-server/addons/init.py", line 703, in load_modules
                      cr.execute("SELECT name from ir_module_module WHERE state in (%s)" %
                      ','.join(['%s']*len(STATES_TO_LOAD)), STATES_TO_LOAD)
                      File "/usr/lib/openerp-server/sql_db.py", line 76, in wrapper
                      return f(self, *args, **kwargs)
                      File "/usr/lib/openerp-server/sql_db.py", line 118, in execute
                      res = self._obj.execute(query, params)
                      psycopg2.ProgrammingError: 错误: 关系 "ir_module_module" 不存在
                      [/code]

                      1 条回复 最后回复 回复 引用 0
                      • digitalsatori
                        digitalsatori 管理员 最后由 编辑

                        按道理说,通过debian安装包安装的openerp应该会自动设置数据库用户,配置文件等,Daemon服务等,一般不需要你再做设置。我没有用apt-get安装过openerp,所以具体情况不是很清楚。

                        postgreSQL数据库在ubuntu上默认使用的是same-user ident, 意思是当客户端与postgreSQL服务器连接时如果没有专门提供数据库用户名,postgreSQL服务器会以运行客户端的系统用户名作为数据库用户名。这就是为什么你在之前用命令行参数设置了数据库名称,而不设置数据库用户时,显示的是以系统用户来登录数据库的。

                        不管是用same-user ident从而使用系统用户名,还是指定用户名登录pgsql数据库,前提是必须在数据库中已经有对应数据库用户存在,创建数据库用户的方法如下:

                        sudo su postgres -c createuser -RP DBUSER
                        

                        替换DBUSER为你需要设置的数据库用户名,并在提示输入密码时,为其设置密码。

                        openerp-server.py的命令行参数可以连起来使用,比如:

                        openerp-server&#46;py -d DBNAME -r DBUSER --addon-path=ADDONPATH -s
                        

                        上述参数中前两个你已经了解了,第三个用来告诉openerp服务器到哪里去找addons模块目录,最后我们用-s来保存以上的设置到默认的配置文件里,即:$HOME/.openerp_serverrc
                        这样你下次启动openerp服务器就不需要输入这一堆命令行参数了,直接运行openerp-server.py就可以了。

                        【上海先安科技】(tony AT openerp.cn)

                        1 条回复 最后回复 回复 引用 0
                        • P
                          paridis 最后由 编辑

                          [quote]原帖由 [i]digitalsatori[/i] 于 2009-9-4 16:22 发表 www.shine-it.net/redirect.php?goto=findpost&pid=2668&ptid=610
                          按道理说,通过debian安装包安装的openerp应该会自动设置数据库用户,配置文件等,Daemon服务等,一般不需要你再做设置。我没有用apt-get安装过openerp,所以具体情况不是很清楚。

                          postgreSQL数据库在ubuntu上默认 ... [/quote]

                          [email protected]:~$ openerp-server -d openerp -r openerp --addons-path=/etc/openerp-server.conf -s
                          Traceback (most recent call last):
                          File "./openerp-server.py", line 108, in <module>
                          pooler.get_db_and_pool(db, update_module=tools.config['init'] or
                          tools.config['update'])
                          File "/usr/lib/openerp-server/pooler.py", line 40, in get_db_and_pool
                          addons.load_modules(db, force_demo, status, update_module)
                          File "/usr/lib/openerp-server/addons/init.py", line 703, in load_modules
                          cr.execute("SELECT name from ir_module_module WHERE state in (%s)" %
                          ','.join(['%s']*len(STATES_TO_LOAD)), STATES_TO_LOAD)
                          File "/usr/lib/openerp-server/sql_db.py", line 76, in wrapper
                          return f(self, *args, **kwargs)
                          File "/usr/lib/openerp-server/sql_db.py", line 118, in execute
                          res = self._obj.execute(query, params)
                          psycopg2.ProgrammingError: 错误: 关系 "ir_module_module" 不存在

                          在数据库中已经有对应数据库用户存在,用pgadmin可以登陆

                          1 条回复 最后回复 回复 引用 0
                          • digitalsatori
                            digitalsatori 管理员 最后由 编辑

                            openerp-server -d openerp -r openerp --addons-path=/etc/openerp-server&#46;conf -s
                            

                            --addons-path 参数用错了,这里要提供的是openerp的模块的存放路径。找一下在你的系统中addons的路径是什么

                            【上海先安科技】(tony AT openerp.cn)

                            1 条回复 最后回复 回复 引用 0
                            • mrshelly
                              mrshelly 最后由 编辑

                              这些参数,应该直接使用 openerp-server.cfg 文件来处理. 最好不要跟命令行参数吧

                              1 条回复 最后回复 回复 引用 0
                              • First post
                                Last post